大佬教程收集整理的这篇文章主要介绍了CentOS配置MySQL基于日志点的复制Binary Log File Position Based Replication,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
下面的配置基于CentOS7.2,MysqL5.7
建立基于日志点的复制
我们看看官方的配置步骤
主要有以下步骤
其中第3步和第4步可以通过一条语句完成,第6步是将配置好的slave作为其他slave环境(主要步骤是复制配置好的slave的数据目录文件夹,我们通过重复的步骤也可以实现)
使用基于日志点的复制来配置master,我们必须开启二进制日志并为master分配一个唯一的server ID。
编辑/etc/my.cnf
sudo vim /etc/my.cnf
在[MysqLd]下面添加下面的配置,如果[MysqLd]下面没有配置的话,配置了就根据需求修改或跳过
log-bin=MysqL-bin server-id=1
log-bin开启二进制日志并配置了二进制日志的前缀
server-id配置了server的id
然后重启MysqL
sudo systemctl restart MysqLd.service
CREATE USER '用户名'@'ip地址' IDENTIFIED BY '密码'; GRANT ReplicatION SLAVE ON *.* TO '用户名'@'ip地址';
上面的两条命令主要是创建了复制slave用户
如果出现
ERROR 1396 (HY000): Operation CREATE USER Failed for 'xxx'@'xxx'
执行
FLUSH PRIVILEGES
再执行上面的两条命令
MysqLdump -uroot -p --single-transaction --triggers --routInes --flush-logs --master-data --all-databases > /tmp/alldb.sql
上面的MysqLdump会导出master上的所有数据到/tem/alldb.sql中,并且记录了master上的日志点(日志文件和日志位置),主要是–master-data的作用,其他参数可以自行搜索。
我们可以看看导出的文件,里面有了MASTER_LOG_FILE和MASTER_LOG_POS,这两个参数在后面会用到,这个也是master上当前show master status看到数据。
将数据导出后master上的配置已经完成了。
下面的操作在slave上
有可能我们很多时候有各种错误,导致我们也不知道slave的当前状态,所以有必要先停掉,不管slave启动没有
STOP SLAVE;
参照第1步为slave配置一个server-id,注意要唯一,不能和master相同,重启slave。
我们把刚才导出的数据导入slave中
CHANGE MASTER TO MASTER_HOST='master的ip',MASTER_USER='第2步在master上创建的用户',MASTER_password='第2步在master上创建的用户的密码',MASTER_LOG_FILE='第3步MysqLdump出文件记录的MASTER_LOG_FILE',MASTER_LOG_POS=第3步MysqLdump出文件记录的MASTER_LOG_POS;
执行之后就配置好了CHANGE MASTER TO
然后
START SLAVE;
然后通过
SHOW SLAVE STATUS\G;
查看slave的状态
看到Slave_IO_Running和Slave_sql_Running都是Yes就说名slave启动正常了。
这里我是隔了几天截图的,所以Master_Log_Pos是381877,刚刚执行后Master_Log_File应该是刚才第2步看到的154。
如果出现
ERROR 1045 (28000): Access denied for user 'xxx'@'xxx' (using password: YES)
可能是防火墙的问题
查看防火墙
sudo systemctl status firewalld.service
开启防火墙
sudo systemctl start firewalld.service
添加3306
sudo firewall-cmd --zone=public --add-port=3306/tcp --peRMANent
sudo firewall-cmd --reload
查看3306端口
sudo firewall-cmd --query-port=3306/tcp
查看所有的开放端口
sudo firewall-cmd --zone=public --list-all
防火墙端口开放后
SLAVE STOP; SLAVE START;
到这Master和Slave都配置完了,在master更新会同步到slave.
以上步骤是可以重现的,我实验了好几次。
如果需要配置多个slave,重复执行slave的步骤即可。
如果需要slave作为其他slave的master(A->B->C)则需要在slave开启二进制日志(即配置log-bin)外,还要配置log_slave_updates=on,即slave同步master的日志后,再写入自己的log-bin,这样slave的slave才能同步到master更新的数据。
以上是大佬教程为你收集整理的CentOS配置MySQL基于日志点的复制Binary Log File Position Based Replication全部内容,希望文章能够帮你解决CentOS配置MySQL基于日志点的复制Binary Log File Position Based Replication所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。