1.环境centos7.5 docker
2.下载docker 版本的mysql 启动容器
docker run --name mysql_master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d docker.io/mysql:latest
docker run --name mysql_slave -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d docker.io/mysql:latest
3.docker ps 进入容器改my.cnf
master:
server_id=5
binlog_ignore_db=mysql
log_bin=master5
binlog_format=mixed
slave:
server_id=5
binlog_ignore_db=mysql
log_bin=slave6
binlog_format=mixed
4.ctrl + p + q 退出容器 执行重启:
docker f18ebe8a7546 restart
docker 981e5ff53e4d restart
5.主库执行
create user slave@"%" identified by "123qqq...A";
ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123qqq...A';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123qqq...A';
grant replication slave on *.* to slave@"%";
reset master;
show master status
从库执行
change master to master_host='172.17.0.5', master_user='slave', master_password='123456', master_port=3306, master_log_file='master5.000001', master_log_pos=155;
start slave;
show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
6.验证数据库是否同步
在宿主机登录(root用户)其中主mysql执行创建库表的命令,在从上查看是否有新数据产生。
7.备份操作全备
mysqldump -Uroot -p密码 -A > all.sql
还原容器里的数据到新的数据库
docker cp f18ebe8a7546:/all.sql ./ 移动·容器内的sql文件到宿主机 ,在复制到新的服务器执行:
mysqldump -Uroot -p密码 < all.sql 或者进入数据库执行 source /root/all.sql