可以参考之前的博客,之前写过了~
docker pull mysql:5.6
主:
docker run -di --name=mysql01 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
从:
docker run -di --name=mysql02 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
1)修改主数据库配置
进入主数据库容器
docker exec -it mysql01 /bin/bash
切换到 etc/mysql/
目录下
查看可以看到my.cnf
文件,使用vim编辑器打开,但是需要提前安装
安装vim命令:
apt-get update
apt-get install vim
安装成功后,修改my.cnf文件
vim my.cnf
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字(我用的是testdb)
#设置logbin格式
binlog_format=STATEMENT
2)从数据库配置
按照上面步骤进入到容器并编辑my.cnf
文件
修改后的配置:
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay
3)重启mysql
注意:关闭防火墙或者开放对应端口
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'IDENTIFIED BY '123456';
SHOW MASTER STATUS; #查询master的状态
CHANGE MASTER TO
MASTER_HOST='192.168.1.19',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_PORT=3307,
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=736;
#启动从服务器复制功能
START SLAVE;
#查看从服务器状态
SHOW SLAVE STATUS;
看到两个yes说明成功了
注意:之前弄过主从复制的需要重置:
STOP SLAVE;
RESET SLAVE;
1)容器配置文件修改错误,导致容器启动失败
第一种办法:删掉容器重新来过
第二种办法:
1、使用docker inspect mysql01/id
,然后打印出很多信息
切换到这个文件夹:
然后可以找到容器的配置文件了
是不是觉得很熟悉?不就是我们配置的文件吗,重新修改正确后,容器又能正常启动了…
2)从数据库在添加主数据库的时候,
默认是3306
端口,如果不是,则需要修改,不然就连接不上主机了
后续会继续更新升级版~~~