先安装mysql
docker run -p 43306:3306 \
--name mysql_m \
-v /root/mysql/master/conf:/etc/mysql/conf.d \
-v /root/mysql/master/logs:/logs \
-v /root/mysql/master/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart=always \
-d mysql:5.7docker run -p 43307:3306 \
--name mysql_s \
-v /root/mysql/slave/conf:/etc/mysql/conf.d \
-v /root/mysql/slave/logs:/logs \
-v /root/mysql/slave/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart=always \
-d mysql:5.7
然后配置mysql的mysqld.cnf文件
[mysql]
default-character-set=utf8mb4
[client]
default-character-set = utf8mb4
[mysqld]
max_connections=500
character-set-server=utf8mb4
default-storage-engine=INNODB
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
log-bin=mysql-bing
server-id=1
bind-address=0.0.0.0
binlog-ignore-db=mysql
log-error=/var/log/mysql/error.log
在主库创建同步账户
create user 'replicate'@'172.17.0.1' identified by '123456';
grant replication slave on *.* to 'replicate'@'172.17.0.1';
flush privileges;
然后查看主库的log-bin状态
show master status\G
配置从库的slave
stop slave;
reset slave;
change master to master_host='172.168.1.5',master_port=43306,master_user='replicate',master_password='123456',master_log_file='mysql-bing.000001',master_log_pos=775;
start slave;
查看从库的slave状态
show slave status\G
当显示Slave_IO_Running: Ye、 Slave_SQL_Running: Yes时,证明主从同步关系生效