MySql教程

docker下,mysql主从复制配置

本文主要是介绍docker下,mysql主从复制配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、下载mysql镜像

docker pull mysql:latest

2、执行安装

docker run -d --name mysql-master -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

指定主库为3307端口,映射容器中的3306端口,指定root密码为123456

3、查看网络

docker network ls  

 

 

 4、把主库加入到网络中

 docker network connect newwork mysql-master

5、 进入到 mysql-master 修改配置文件

 

 

 编辑 docker.cnf

## 同一局域网内注意要唯一

server-id=1

## 开启二进制日志功能,可以随便取(关键)

log-bin=master-bin

 

binlog-format=ROW// 二级制日志格式,有三种 row,statement,mixed

 

6、重启主服务器 docker 容器 

docker restart mysql-master

 

7、在Master数据库创建数据同步用户,授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据

    

 

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.*  TO 'slave'@'%';

 

 8、配置从库

docker run -d --name mysql-slave -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql    

docker network connect newwork  mysql-slave 

 docker exec -it mysql-slave /bin/bash   

配置Slave

注意:mysql 8.0以上版本,会报连接错误,是由于mysql改变了加密方式

在master数据库中

执行

user mysql;

ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; flush privileges; 退出重启一下主库的容器

类似于Master,使用docker命令docker exec -it mysql-slave /bin/bash 进入到slave容器中,进入到etc/mysql路径,使用vim命令编辑my.cnf文件:

[mysqld]

## 设置server_id,注意要唯一

server-id=101

## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用

log-bin=mysql-slave-bin

## relay_log配置中继日志
进入Master库mysql客户端:输入show master status查看Master状态:

 

 

 查看主服务器的地址

 

 docker inspect mysql-master

 

 

 

 进入到Slave库myslq客户端,执行如下命令:

 

CHANGE MASTER TO MASTER_HOST='172.17.0.6', MASTER_USER='slave',MASTER_PASSWORD='root',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=157;

master_port:Master的端口号,指的是容器的端口号

master_user:用于数据同步的用户

master_password:用于同步的用户的密码

master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值

master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值

master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒

 

 

在Slave 中的mysql终端执行show slave status \G;用于查看主从同步状态。

 

这篇关于docker下,mysql主从复制配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!