docker数据库主从复制

docker数据库主从复制学习总结:
1.创建主mysql容器
当然拉取mysql镜像就忽略了,到hub.docker.com上pull镜像下来就是啦。

docker  run --name mysql-master  -d  --mount src=mysql-vol,dst=/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8

2.开启容器

docker start  mysql-master

3.创建从mysql容器

docker  run --name mysql-slave  -d  --mount src=mysql-vol,dst=/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8

4.开启容器

docker start  mysql-slave

5.开启主容器bin-log日志
如果没有vim要先按照vim

apt-get update
apt-get install vim

vim编辑my.cnf

vi etc/mysql/mysql.conf.d/mysqld.cnf

添加以下内容

server-id=1#自定义
log-bin=mysql-bin

在这里插入图片描述
如果现实为以上内容则说明bin-log日志已开启
6.为从库设置复制账号

/*
创建账号sql:
create user 'username'@'localhost' identified by 'password';

授权
grant [权限] on *.* to 'username'@'localhost' identified by 'password';
 */

mysql> create user 'repl_131'@'%' identified by 'repl_131';
Query OK, 0 rows affected (0.04 sec)

mysql> select user,host from mysql.user;

mysql> grant replication slave on *.* to 'repl_131'@'%' identified by 'repl_131';
Query OK, 0 rows affected, 1 warning (0.00 sec)

7.查询主容器ip并在从容器中登录

docker inspect mysql-master

在这里插入图片描述

mysql  -h172.10.0.2 -urepl_131 -p 

8.从容器配置中继日志

vi etc/mysql/mysql.conf.d/mysqld.cnf
server-id=2
relay_log=mysql-relay-bin
relay_log-index=mysql-relay-bin.index

9.重启从容器

docker restart mysql-slave

10.启动复制

change master to master_host="172.10.0.2",master_port=3306,master_user="repl_131",
master_password="repl_131",master_log_file="mysql-bin.0.000001",master_log_pos=0;
show slave status \G;

在这里插入图片描述
出现这种错误的原因是应为日志文件不对在主容器中查看binlog的日志文件

show master status

在这里插入图片描述
修改从容器复制语句为

change master to master_host="172.10.0.2",master_port=3306,master_user="repl_131",
    -> master_password="repl_131",master_log_file="mysql-bin.000002",master_log_pos=0;

在执行上面操作
在这里插入图片描述
说明复制成功!!
注意:住容器中和从容器中的server-id不能相同,否则会报错误!!!

测试

在主库中创建数据库
在这里插入图片描述
查看从库复制情况
在这里插入图片描述
测试成功!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值