前语:如遇部分代码报错,很可能是直接复制粘贴的原因,至于为什么只能蹲一个大佬来解释了,这里的解决方法是手敲
首先用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;
![](https://i-blog.csdnimg.cn/blog_migrate/d2bc106f3244f530063e1cc1a80b6c6f.png)
这时再回到 从 且登录到数据库(对照前面的登录)执行下列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,如下,那么配置完成
![](https://i-blog.csdnimg.cn/blog_migrate/300255a4710f82bc737361aa0e88dfc7.png)