简单来说,双主复制就是让两台mysql服务器中的数据保持同步,可以用来实现灾备和负载均衡
主机1 IP:192.168.200.128
主机2 IP:192.168.200.131
两台主机系统均为centos7
步骤也很简单
一定要记住,防火墙,selinux先关闭再实验
1。安装并部署mariadb
2。配置mariadb的配置文件
3。在两台主机mysql中增加用户以及密码,用来登录mysql
4。配置另一台主机为master,并开启slave
5。测试双主复制是否成功
下面用主机1说明
1。无非就是yum install mariadb mariadb-server -y还有设置密码为123456之类,不多说
2。如图,这个是在主机1上的配置文件截图,主机2也差不多,只需要把id改为2,mastera-bin该为masterb-bin,还有最后一行的1改为2就可以了。后面这两行是比较关键的,假设我们有一个表的id是自增的,那么如果我们在主机1和主机2上分别插入数据,那么很有可能新插入的主键会重复冲突,导致插入数据时出现问题
3。添加用户,授权replication slave就可以
4。设置master,其中IP,用户名,密码以及master_log_file和master_log_pos是在主机2上的,后面两个的值在主机2上执行show master status;即可获取
5。下面我们就实验一下,创建这么一个表
再插入一条数据,id自增为3
再到主机2中插入数据,从3的下一个数4开始,并且以2递增
对了,因为我都是在虚拟机做实验,所以总喜欢在做新实验时直接把系统快照直接恢复到刚装好系统的状态,这样可以避免很多问题。
所以我打算这回多找点事做,直接在配置好msyql之后不恢复快照直接进行mysql双主配置,然后,在主机2上change master。。。。那里时,一回车就包1201错误
上网一查,删除下面两文件
/var/lib/mysql/master.info
/var/lib/mysql/relay-log.info(我只删除了这个,问题解决,配置成功了,)
本来想向其他人请教一下的,结果上网一查就有就能解决了。所以百度,谷歌之所以存在,不是没有道理的。
有时候遇到问题,一定要先百度,看完百度搜索结果前两页还不能解决,再考虑请教别人吧,特别是这种提示有错误代码的,网上应该都有现成的答案的