windows下使用docker搭建mysql环境,并使用宿主机工具连接

环境搭建和docker拉取mysql 不做叙述,文章太多,参考搭建即可;

本文从拉取mysql 镜像后开始: 

一、启动mysql容器

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your-password -v /d/volume/mysql:/var/lib/mysql  -d mysql:5.7.4

--name mysql  //以mysql命名当前运行的容器,后期可以用作其他容器连接查找标识(--link)或者在`docker  exec `时当ID使用;

-p 3306:3306 //将容器中的3306映射至本地宿主机的3306端口;

-e  MYSQL_ROOT_PASSWORD=your-password //设置mysql的root账号密码,这里将 your-password改成你想设置的密码即可;

-v /d/volume/mysql:/var/lib/mysql //mysql容器中运行的mysql 数据存储在 /var/lib/mysql 为了方式容器误删除导致的数据丢失,这里将本地 (D:\volume\mysql)文件夹挂载至容器的 /var/lib/mysql ;

-d //后台运行 

mysql:5.7.4  //mysql 使用你下载的镜像名,如 dockhub.io/mysql  5.7.4 是其tag;

二、本地连接

在查阅各类技术文章,本地总是连不到容器中mysql,随自行尝试;想起windows上使用的是虚拟机的方式加载,故而查看虚拟机设置:

docker环境使用的虚拟机网络设置

切换至 “全局工具” 查看 适配器2的设置:

适配器2的ip分配池

因为环境中只启动了mysql一个容器,故而从 192.168.99.100开始;

在本机打开 dbeaver 新建连接 服务器地址填写 192.168.99.100  测试连接,成功连入!

mysql连接

 

希望能帮到各位不想在本地安装mysql,还想体验docker的便捷的同学帮助;

<think>好的,我现在需要帮用户解决如何使用Docker搭建MySQL主从复制的问题。首先,我得回忆一下相关步骤,可能需要先创建两个容器,一个作为主节点,另一个作为从节点。然后配置主节点的my.cnf文件,设置server-id和log-bin。接下来,重启主节点容器,创建用于复制的用户授权。之后,配置从节点的my.cnf,同样设置不同的server-id。然后进入从节点的MySQL使用CHANGE MASTER TO命令连接到主节点,指定主机地址、用户、密码、日志文件和位置。最后启动从节点的复制进程,检查状态。 不过,用户提供的引用中有一些细节需要注意。比如引用3提到了使用Docker命令运行主节点容器,映射端口、卷和环境变量。引用4提到了在从节点执行CHANGE MASTER TO时可能需要使用容器名称作为MASTER_HOST,且要确保主从容器在同一个网络里。另外,主节点需要创建用户授权复制权限,如引用2和4所述。还有,重启容器后配置生效,如引用1和2中的重启步骤。 可能需要分步骤详细说明,包括主节点的配置、从节点的配置、连接主从的步骤以及验证方法。同时要注意版本兼容性,比如5.7和8.0是否有差异,但用户提到引用2有详细步骤,可能可以建议用户参考。此外,用户可能容易出错的地方,比如server-id重复、日志文件位置错误,或者网络连接问题,需要提醒注意。最后,生成相关问题,比如性能优化、常见问题解决等。</think>### 使用 Docker 搭建 MySQL 主从复制教程 #### 一、主节点配置 1. **创建主节点容器** 运行以下命令启动主节点容器,映射端口、配置数据卷设置密码: ```bash docker run -d -p 3307:3306 --name mysql-master \ -v /opt/mysql-master/conf:/etc/mysql/conf.d \ -v /opt/mysql-master/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=root \ --privileged=true mysql:5.7 ``` 此处通过数据卷挂载自定义配置文件(`my.cnf`)[^3]。 2. **配置主节点文件** 在宿主机 `/opt/mysql-master/conf` 目录下创建 `my.cnf`,添加以下内容: ```ini [mysqld] server-id=1 log-bin=mysql-bin ``` 重启容器使配置生效: ```bash docker restart mysql-master ```[^2] 3. **创建复制用户** 进入主节点 MySQL 执行: ```sql CREATE USER 'slave'@'%' IDENTIFIED BY 'slave'; GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'; FLUSH PRIVILEGES; ``` 查看主节点状态,记录 `File` 和 `Position` 值: ```sql SHOW MASTER STATUS; ```[^4] --- #### 二、从节点配置 1. **创建从节点容器** 运行命令启动从节点容器(注意端口和数据卷路径差异): ```bash docker run -d -p 3308:3306 --name mysql-slave \ -v /opt/mysql-slave/conf:/etc/mysql/conf.d \ -v /opt/mysql-slave/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=root \ --privileged=true mysql:5.7 ``` 2. **配置从节点文件** 在从节点配置目录中添加 `my.cnf`: ```ini [mysqld] server-id=2 ``` 重启容器:`docker restart mysql-slave`[^1]。 --- #### 三、主从连接 1. **设置从节点同步参数** 进入从节点 MySQL 执行: ```sql CHANGE MASTER TO MASTER_HOST='mysql-master', -- 若容器在同一网络,可使用容器名称 MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='mysql-bin.000001', -- 主节点记录的File值 MASTER_LOG_POS=154; -- 主节点记录的Position值 ``` 启动同步: ```sql START SLAVE; ``` 2. **验证同步状态** 执行 `SHOW SLAVE STATUS\G`,确认: - `Slave_IO_Running` 和 `Slave_SQL_Running` 均为 `Yes` - `Last_IO_Error` 无报错 --- #### 四、测试数据同步 在主节点创建数据库或插入数据,观察从节点是否自动同步。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值