Docker搭建mysql主从赋值

Docker搭建mysql主从赋值

  1. Docker拉取mysql最新镜像
docker pull mysql[:latest]
  1. 生成并运行mysql master容器
docker run -p 3306:3306 --name master -e MYSQL_ROOT_PASSWORD=123456 -d mysql
  1. 进入master容器,修改加密方式支持navicat链接
docker exec -it master bash

(echo log-bin=mysql-bin;echo server-id=1) >> /etc/mysql/conf.d/docker.cnf

mysql -uroot -p123456

ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
  1. slave 同上
docker run -p 3307:3306 --name slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql

docker exec -it slave bash

(echo log-bin=mysql-bin;echo server-id=2) >> /etc/mysql/conf.d/docker.cnf

mysql -uroot -p123456

ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
  1. 重启容器,让配置生效
docker restart master
docker restart slave
  1. 使用navicat链接master slave数据库
master 执行命令

CREATE USER 'backup'@'%' IDENTIFIED BY 'backup';
ALTER USER 'backup'@'%' IDENTIFIED WITH mysql_native_password BY 'backup';
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%';
FLUSH PRIVILEGES;

show master status;


slave 执行

stop slave;

change master to
master_host='192.168.1.203',master_port=3306,
master_user='backup',master_password='backup',
master_log_file='mysql-bin.000001',master_log_pos=155;

start slave;

show slave status;

你可能感兴趣的:(Docker搭建mysql主从赋值)