我本地环境是6台服务器,分别为ABCDEF,其中ABC为一组,A是主,BC为从。DEF为一组,D是主,EF是从。AD互为主从。
首先为配置文件,主从配置文件基本一样,主要是server_id必须是唯一的。
以下是我的配置
一、单组主从以ABC为例。
1、A服务器上,开启复制账号,mysql8 的指令为以下指令:
CREATE USER '用户名'@'%' IDENTIFIED BY '密码'; 其中,百分号指的是局域网所有ip,可以指定ip访问。
grant all privileges on *.* to 'root'@'%' ; 赋予root所有权限。
更新权限
flush privileges;
2、主数据库输入show master status;得到下图:
主数据库配置完成。
3、从数据库(B),使用命令行进入mysql;
(1)先关闭slave;stop slave;
(2)执行命令:CHANGE MASTER TO MASTER_HOST='主数据库ip(A)', MASTER_USER='复制用户名', MASTER_PASSWORD='密码', MASTER_LOG_FILE='上图中的1', MASTER_LOG_POS=上图中的2;
(3)如果出现错误,可能是slave没有关闭,关闭后重新执行命令。
(4)开启slave; start slave;
(5)show slave status \G; 出现下图:
说明正常。同理将C安装好。
(6)在A中执行增删改操作,BC可同步进行,但是BC上进行操作,其他两个不会有反应。
二、双向主从配置
双向主从是将D作为A的从服务器,A作为D的从服务器,操作与以上相同。