美文网首页
使用docker搭建Mysql 主从复制环境

使用docker搭建Mysql 主从复制环境

作者: 微微一笑倾半城 | 来源:发表于2020-03-12 13:50 被阅读0次

创建master容器

docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=12345 --name=course_master mysql:5.6.29

master.cnf

[mysqld]
server-id = 1
log-bin=mysql-bin
binlog-ignore-db=mysql
# binlog-do-db
# binlog_format=mixed

将master.cnf复制到容器内/etc/mysql/conf.d里面

docker cp master.cnf course_master:/etc/mysql/conf.d

创建slave容器

docker run -d --link master:master -p 3308:3306 -e MYSQL_ROOT_PASSWORD=12345 --name=course_slave mysql:5.6.29

slave.cnf

[mysqld]
server-id = 2
# relay_log = relay_bin
# relay-log-index = relay-bin.index
# read-only=1
# super-read-only=1

将slave.cnf复制到容器内/etc/mysql/conf.d里面

docker cp slave.cnf course_slave:/etc/mysql/conf.d

重启master和slave

docker restart course_master course_slave

配置master和slave

进入容器操作

docker exec -it master mysql -uroot -p12345
docker exec -it slave mysql -uroot -p12345

在master容器中创建同步账号并授权

GRANT REPLICATION CLIENT, REPLICATION COURSE_SLAVE ON *.* TO repl@'%' IDENTIFIED BY 'repl';

在slave容器中创建master并重启slave

CHANGE MASTER TO MASTER_HOST='course_master', MASTER_USER='repl', MASTER_PASSWORD='repl';
start slave;

检查slave是否正常工作

show slave status\G

如果 Slave_SQL_Running_State 是 Slave has read all relay log; waiting for more updates 表示正常运行。

测试master/slave是否正常工作

在主库中创建数据库:
docker exec master mysql -uroot -p123456 -e "CREATE DATABASE test"
在从库中查看数据库:
docker exec slave mysql -uroot -p123456 -e "SHOW DATABASES"

相关文章

网友评论

      本文标题:使用docker搭建Mysql 主从复制环境

      本文链接:https://www.haomeiwen.com/subject/uyyujhtx.html