阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL 5.7 Docker 主从复制架构搭建

110次阅读
没有评论

共计 1232 个字符,预计需要花费 4 分钟才能阅读完成。

环境版本:
MySQL :  5.7.13
Docker : 1.11.2
CentOS : 7.1
 
1. 先在两个物理机上分别安装两个 MySQL. 命令如下
docker pull mysql:5.7.13
docker run –name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13
2. 在主库上创建一个复制账户
GRANT REPLICATION SLAVE ON *.* TO ‘rep1’@’192.168.2.103’ IDENTIFIED BY ‘qaz.00JK’;
复制账户为: rep1
指定从库的 IP 必须为: 192.168.2.103 
复制密码为: qaz.00JK
3. 修改主库的配置文件 (麻烦, 应该有更方便的修改方式)
3.1 先从 docker 拷贝配置文件到主机 /root 目录: 
docker cp anuo-mysql:/etc/mysql/my.cnf /root
3.2 在主机打开 my.cnf , 在 [mysqld] 节点最后加上
log-bin=mysql-bin
server-id=1
3.3 再把此文件上传到 docker mysql 里面覆盖
docker cp /root/my.cnf  anuo-mysql:/etc/mysql/my.cnf
3.4 重启 mysql 的 docker , 让配置生效
docker restart anuo-mysql
4. 修改从库的配置文件
跟第三步一样, 唯一不同是
server-id=2
5. 开始备份, 在主库执行以下命令, 让主库所有表置于只读不能写的状态, 这样达到主从库数据一致性
FLUSH TABLES WITH READ LOCK;
6. 将主库的数据库备份在从库还原
用 navicat for mysql 很方便操作
7. 从库还原后, 释放主库的读锁, 这样主库恢复写权限
unlock tables;
8. 配置从库连接主库, 在从库上执行 
CHANGE MASTER TO 
MASTER_HOST=’192.168.2.108′,
MASTER_PORT=3306,
MASTER_USER=’rep1′,
MASTER_PASSWORD=’qaz.00JK’,
MASTER_LOG_FILE=’mysql-bin.000002′,
MASTER_LOG_POS=898;
 
最后两项
MASTER_LOG_FILE 和  MASTER_LOG_POS
在主库执行 : SHOW MASTER STATUS; 命令可以取得
对应的字段是 File 和 Position
 
9. 在从库启动 slave 线程开始同步
START SLAVE;
 
10. 在从库 查看同步状态
show slave status;
如果看到 Slave_Io_State 字段有 :
Waiting for master to send event … 
那就成功了 ! ! !

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/136998.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1232字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中