当前位置: 首页 > 科技观察

MySQL8主从复制踩坑指南

时间:2023-03-19 23:58:20 科技观察

松哥之前发了一个视频讲MySQL的主从构建。没看过的可以看这里:手把手教你搭建MySQL主从复制,不过那时候是基于MySQL5.7搭建的,最近工作需要搭建基于MySQL的主从MySQL8,和MySQL5.7还是有点区别的,所以稍微记录一下。准备工作这里我用一张简单的图给大家看下MySQL主从的工作原理:在这里,我们准备两台机器:Master:192.168.248.128Slave:192.168.248.139Master配置Master的配置比较简单,分三步:1.授权给从服务器GRANTREPLICATIONSLAVEON*.*to'rep1'@'192.168.248.139'identifiedby'123';FLUSHPRIVILEGES;这里的意思是配置的slave登录用户名为rep1,密码为123,必须从192.168.248.139这个地址登录,登录成功后可以操作任意库的任意表。其中,如果不需要限制登录地址,可以用%代替IP地址。请注意,在MySQL8中,这方面有一些变化。在MySQL8中,用户的创建和授权需要分开,不能像上面那样一步到位。具体方法如下:CREATEUSER`rep1`@`192.168.248.139`IDENTIFIEDWITHcaching_sha2_passwordBY'javaboy.COM';GRANTReplicationSlaveON*.*TO`rep1`@`192.168.248.139`;2。修改主库配置文件开启binlog并设置server-id。每次修改配置文件后,必须重启MySQL服务才能生效vi/etc/my.cnf这个配置文件位置也可能是/etc/mysql/my.cnf,这个要看你自己的系统和MySQL版本。修改文件内容如下:[mysqld]log-bin=/var/lib/mysql/binlogserver-id=128binlog-do-db=cmdb如下图:log-bin:同步日志路径和文件名,一定要注意这个目录如果MySQL有写权限(我这里偷懒,直接放在下面的datadir下)。binlog-do-db:要同步的数据库名称。当slave连接master时,只会同步这里配置的数据库,其他的不会同步。server-id:mysql在master-slave环境下的唯一标识,随便给一个数字,注意不要和slave一样。配置完成后,重启MySQL服务器:systemctlrestartmysqld3。查看主服务器当前的二进制日志名称和偏移量。这个操作的目的是从数据库启动后从这个点恢复数据:showmasterstatus;至此,主机配置完成。从机配置从机的配置也比较简单。下面一步步来看:1.在/etc/my.cnf中添加配置注意从机这里只需要配置server-id即可。注意:如果从机是从宿主机复制过来的,也就是我们通过复制CentOS虚拟机得到MySQL实例,此时两个MySQL的uuid是一样的(正常安装不会一样),那么就需要手动修改修改位置在/var/lib/mysql/auto.cnf中,注意这里修改几个字符,但不要太随意,比如修改uuid的长度。2、使用命令配置从机changemastertomaster_host='192.168.248.128',master_port=3306,master_user='rep1',master_password='123',master_log_file='binlog.000001',master_log_pos=120;这里配置主机地址、端口和从机登录主机的用户名和密码。注意最后两个参数必须和master中的保持一致。注意由于MySQL8密码插件的问题,这个问题也会导致主从配置出现问题,所以在MySQL8主从配置中,上面的命令需要加上get_master_public_key=1,完整的命令是如下:changemastertomaster_host='192.168.248.128',master_port=3306,master_user='rep1',master_password='123',master_log_file='binlog.000001',master_log_pos=120,get_master_public_key=1;3.启动slave进程启动slave;启动后查看slave状态:showsslavestatus\G;4.检查从站的状态。下面两个值必须是YES,说明配置正确:Slave_IO_Running:YesSlave_SQL_Running:Yes至此配置完成,master创建数据库,添加数据,slave会自动同步。如果这两个中有一个不是YES,则说明主从环境搭建失败。这时候可以通过阅读日志查看错误原因,再针对具体问题进行解决。综上所述,本文主要和大家聊聊MySQL主从环境搭建,并提醒搭建MySQL8主从需要注意的几个问题。这些步骤已经被宋哥重复了很多遍了,小伙伴们只需要按照宋哥的说明来就行了。一般来说,步骤是可以成功的。如果您有任何问题,请留言讨论。本文转载自微信公众号“江南的一场小雨”,可通过以下二维码关注。转载本文请联系江南一点鱼公众号。

最新推荐
猜你喜欢