mysql 5.7 docker 主从复制架构搭建教程
分享mysql5.7docker主从复制架构搭建教程,供大家参考,具体内容如下
环境版本:
MySQL: 5.7.13
Docker:1.11.2
CentOS:7.1
1.先在两个物理机上分别安装两个MySQL.命令如下
dockerpullmysql:5.7.13 dockerrun--nameanuo-mysql-p3306:3306-eMYSQL_ROOT_PASSWORD=qaz.00JK-dmysql:5.7.13
2.在主库上创建一个复制账户
GRANTREPLICATIONSLAVEON*.*TO'rep1'@'192.168.2.103'IDENTIFIEDBY'qaz.00JK';
复制账户为:rep1
指定从库的IP必须为:192.168.2.103
复制密码为:qaz.00JK
3.修改主库的配置文件(麻烦,应该有更方便的修改方式)
3.1先从docker拷贝配置文件到主机/root目录:
dockercpanuo-mysql:/etc/mysql/my.cnf/root
3.2在主机打开my.cnf,在[mysqld]节点最后加上
log-bin=mysql-bin
server-id=1
3.3再把此文件上传到dockermysql里面覆盖
dockercp/root/my.cnf anuo-mysql:/etc/mysql/my.cnf
3.4重启mysql的docker,让配置生效
dockerrestartanuo-mysql
4.修改从库的配置文件
跟第三步一样,唯一不同是
server-id=2
5.开始备份,在主库执行以下命令,让主库所有表置于只读不能写的状态,这样达到主从库数据一致性
FLUSHTABLESWITHREADLOCK;
6.将主库的数据库备份在从库还原
用navicatformysql很方便操作
7.从库还原后,释放主库的读锁,这样主库恢复写权限
unlocktables;
8.配置从库连接主库,在从库上执行
CHANGEMASTERTO 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
在主库执行:SHOWMASTERSTATUS;命令可以取得
对应的字段是File和Position
9.在从库启动slave线程开始同步
STARTSLAVE;
10.在从库查看同步状态
showslavestatus;
如果看到Slave_Io_State字段有:
Waitingformastertosendevent...
那就成功了!!!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。