windows docker 创建mysql主从 容器创建mysql主从 |
您所在的位置:网站首页 › docker容器日志位置 › windows docker 创建mysql主从 容器创建mysql主从 |
1. docker命令新建mysql-master,只是简单测试,没有设置映射,只是验证主从连接,需要可自行添加 docker run --restart=always --name mysql-master --privileged=true -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.02. 进入master容器命令,复制配置文件 #1. 进入容器 docker exec -it mysql-master /bin/bash #2. 查看mysql在哪里,复制出来,改好在复制进去 ls cd /etc ls3. 由容器内复制到宿主机命令: docker cp mysql-master:/etc/my.cnf D:/docker-data4. 使用notepad++ 配置下mysql-master 的my.cnf配置文件 5. windows 进入在配置文件的文件夹下,输入下面的复制命令,将原始配置文件覆盖。切记,先cd 到windows的配置文件夹下再输入命令: docker cp my.cnf mysql-master:/etc/ #复制进入后,进入容器 docker exec -it mysql-master /bin/bash # cd /etc # 查看是否覆盖成功 cat my.cnf # 成功退出 exit # 重启mysql-master docker restart mysql-master6. 在master中创建用户并授权 创建一个“slave”的用户(密码:root)用来同步 先进入master内部 docker exec -it mysql-master bash #登录mysql mysql -uroot -proot #创建用户 create user 'slave'@'%' identified by 'root'; #授权 GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'; #mysql8需要执行额外的操作 alter user 'slave'@'%' identified with mysql_native_password by 'root'; flush privileges;以上命令,我使用navicat 控制台输入的,一样的效果,也可以登录mysql 执行 查看状态: 成功如下 position记得查看数字,下面命令配置会用到 #show master status; mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 1142 | syncdb | mysql | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)master配置完毕,现在设置mysql-slave 1. 创建slave服务 并设置端口为3307 docker run --restart=always --name mysql-slave --privileged=true -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.02. 同理配置my.cnf,改好配置后,复制进容器,覆盖容器的配置文件 并重启 [mysqld] server_id=102 #中继日志名 relay_log=mysql-relay3.重启slave docker restart mysql-slave4. 另外还需要验证服务之间的网络连接是否畅通,进入mysql-slave容器 # 登陆 docker exec -it mysql-slave bash #1. 连接mysql mysql -uroot -p123456 -h 172.17.0.2连接成功示例, 如果不成功则检查网络是否配置错误,docker网络配置,服务器防火墙配置,阿里控制台端口配置等 再仔细检查: 5. 继续配置mysql-slave ,navicat 登陆mysql-slave输入配置命令: # 这个也需要看看是否需要修改 比如master_log_pos=1142 ,master_password=root密码 change master to master_host='172.17.0.2',master_user='slave',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=1142;6.启动slave, 在mysql-slave输入命令: #mysql下 start slave;7. 查看状态: #mysql下 show slave status;8. 测试是否成功,在master新建数据库syncdb 并建表, 从库也看到了数据
错误:
如果出现同库不能同步情况,可以试试重置,并开启: reset slave; start slave;这个没用过,重置主从连接: stop slave; reset master; |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |