docker实现mysql的主从复制(linux系统)

前语:如遇部分代码报错,很可能是直接复制粘贴的原因,至于为什么只能蹲一个大佬来解释了,这里的解决方法是手敲

首先用docker跑起来

如果没有docker 先用 yum命令来安装docker,

一下跑俩台,即:开启俩台虚拟机,执行如下命令

docker run -p 3306:3306--name mysql-master \

-e MYSQL_ROOT_PASSWORD=1234 \

-d mysql:5.7

之后进入到docker内部的mysql里面

docker exec -it mysql-master bash

(这个mysql-master是容器名)

这时要安装vim来编辑my.cnf这个mysql配置文件,

yum update

yum install vim

安装好后,开始编辑

cd /etc/mysql

vim my.cnf

之后输入 i 进入编辑模式,将以下内容复制进去

[mysqld]

log-bin=mysql-bin

server-id=100

按ESC退出编辑模式,在按冒号:键,输入wq 退出

然后重启mysql服务:

exit(用来退出容器的,输俩遍,退出到linux系统目录)

执行

docker restart mysql-master

这时’主’这边已经配置好了, ’从’那边和这边类似,有如下不同.

一,docker run的时候 --name mysql-master 这个名字最好改一下换成mysql-slave

二,编辑my.cnf的时候将server-id=100的100换个其他数字就可以

(当然如果碰上命令里的mysql-master也要换成mysql-slave)

从 配完之后,回到 主 登录Mysql数据库,且进行授权操作输入以下SQL

docker exec -it mysql-master bash (进入mysql容器)

mysql -u root -p1234 (登录mysql)

GRANT REPLICATION SLAVE ON*.* to 'copyer'@'%' identified by '1234';

(copyer是授权人的名字,它相当于是主从复制之间进行跑腿的那个人,1234是密码)

执行下面SQL,记录下结果中File和Position的值

show master status;

这时再回到 从 且登录到数据库(对照前面的登录)执行下列SQL

change master tomaster_host='192.168.110.128',master_user='copyer',master_password='1234',master_log_file='mysql-bin.000001',master_log_pos=154;

(里面的mysql-bin.000001和154添自己的)

验证主机从机都关闭防火墙

#启动 从 服务器复制功能

start slave;

#查看 从 服务器状态

show slave status;

如果里面有俩yes,如下,那么配置完成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值