Docker搭建mysql主從賦值
- Docker拉取mysql最新鏡像
docker pull mysql[:latest]
- 生成并運行mysql master容器
docker run -p 3306:3306 --name master -e MYSQL_ROOT_PASSWORD=123456 -d mysql
- 進入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;
- 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;
- 重啟容器,讓配置生效
docker restart master
docker restart slave
- 使用navicat鏈接master slave數(shù)據(jù)庫
master 執(zhí)行命令
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 執(zhí)行
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;