记录使用docker搭建mysql主从服务

首先查看docker ip地址,需要查看各个docker机器的地址,用于后续链接mysql主使用
搭建一主一从:

docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql-master

主节点操作

docker run -d -p 3307:3306 --privileged=true -v E:/docker/mysql-master/log:/var/log/mysql  -v E:/docker/mysql-master/data:/var/lib/mysql  -v E:/docker/mysql-master/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master mysql:5.7

链接master节点修改主机配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
server-id = 1 #不能重复
log-bin=mysql-bin
binlog-ignore-db=mysql #忽略的数据库

创建 slave 用户

    CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

或:

 grant replication slave on *.* to 'slave'@'172.17.0.3' identified by '123456';

查看数据master状态,会显示当前binlog文件和偏移位置

show master status;

子节点操作

docker run -d -p 3308:3306 --privileged=true -v E:/docker/mysql-slave/log:/var/log/mysql  -v E:/docker/mysql-slave/data:/var/lib/mysql  -v E:/docker/mysql-slave/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave mysql:5.7

修改slave节点配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
server-id=2 #和主不能一致
relay-log=mysql-relay-bin  #不明

查看slave状态:

show slave status \G;

同步master数据库:

change master to master_host='宿主机ip',master_user='slave',master_password='123456',master_port=3307,master_log_file='binlog.000003',master_log_pos=157,master_connect_retry=30;
参数说明:
    master_host:        master ip
    master_user:        同步用户
    master_password:    密码
    master_port:     端口
    master_log_file:    master上面查看到的二进制日志名
    master_log_pos:     master上面查看到的POS值
    master_connect_retry: 重试次数 

开始同步:

start slave;

特殊:配置完成后需要重启才能同步

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容