基于docker的mysql主从搭建

Mysql主从复制搭建
sudo docker run -p 3339:3306 --name master -e MYSQL_ROOT_PASSWORD=Gxy_201904 -d mysql:5.7
sudo docker run -p 3340:3306 --name slave -e MYSQL_ROOT_PASSWORD=Gxy_201904 -d mysql:5.7
目录映射:
容器数据目录:/var/lib/mysql
容器配置文件目录:/etc/mysql/mysql.conf.d/mysqld.cnf
宿主主机目录:/data/mysql/data
例如:
docker run -itd -e MYSQL_ROOT_PASSWORD=Moguding123 --name slave -v /data/mysql/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql:5.7
[mysqld]

同一局域网内注意要唯一

server-id=100

开启二进制日志功能,可以随便取(关键)

log-bin=mysql-bin
配置完成后重启容器,进入MySQL
show master status;
查看二进制文件名与位置,这个值要记住,在从容器上会用到
下一步在Master数据库创建数据同步用户,授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。
CREATE USER ‘develop’@’%’ IDENTIFIED BY ‘moguding123’;
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘develop’@’%’;

到这里master容器配置完成,接下来运行一个slave容器
Docker run -d –name slave -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root mysql
进入slave容器,修改slave的配置
开启二进制日志,设置server-id,配置完成后重启服务
[mysqld]

设置server_id,注意要唯一

server-id=101 (要比主的值小)

开启二进制日志功能,以备Slave作为其它Slave的Master时使用

log-bin=mysql-slave-bin

relay_log配置中继日志

relay_log=edu-mysql-relay-bin

4、若主库数据库已有数据,需要先锁定主库数据写入
mysql> flush tables with read lock; (锁定数据写入)

Mysql> unlock tables; (解锁表)

show master status;

打开MySQL会话,执行同步sql语句,同步master账号信息
change master to master_host=‘42.96.138.228’, master_user=‘develop’, master_password=‘Moguding123’, master_port=9627, master_log_file=‘mysql-bin.000001’, master_log_pos=1878, master_connect_retry=30;

start slave ;

使用show slave status\G;查看slave的状态,可以看到主从同步设置成功了

在配置主从复制的时候出了点小问题,Slave_Io_Running一直处于connecting状态,配置信息看着没错,就以为是网络问题,就去ping master容器,后来发现我ping的一直是slave的容器,那我的配置信息的IP自然也是slave的IP了,后来改了IP果断yes。
开始测试主从复制
我在master上创建了一个名为wanger的数据库,在slave可以查看到此数据库的存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值