mysql配置主从以及遇到的坑

本文详细介绍了在CentOS7环境下,使用MySQL5.7设置主从复制的步骤,包括配置文件修改、权限授予、日志文件处理以及坑点解析。在主库上创建用户并授权,设置binlog,而在从库上配置相应的replicate选项。在启动和检查过程中,需关注Slave_IO_Running和Slave_SQL_Running的状态,确保主从数据同步。同时,提供了判断主从复制出现问题的排查方法。
摘要由CSDN通过智能技术生成

在这里插入图片描述
基本原理:master一个io将操作写入binlog,slave的一个io读取master的binlog,写入中继日志,然后通过一个sql线程将日志写入slave的数据库

系统 centos7 数据库mysql5.7
由于个人隐私问题所以这里ip地址和数据库用户名都用以下称号来替代:
主机 IP:ip1 数据库账号:r1 密码:123456
从机 IP:ip2 数据库账号:r2 密码:123456

在r1数据库中执行以下命令

grant replication slave on *.* to 'r2'@'ip2' identified by '123456';
# 给主机添加从机

配置主机的config文件 一般来说 默认在 /etc/my.cnf 加入以下几行

server-id = 1 
#id不要和从机重复
log-bin=/var/log/mysql/mysql-bin 
# binlog的位置
binlog-do-db = test
#记录日志的数据库 
(坑1 :这里我要主从test数据库 test后别有空格 否则mysql会将空格加上变成test  会导致master进行操作而binlog的pos不变)
binlog-ignore-db = mysql
#不记录日志的数据库

配置从机的config文件 在 /etc/my.cnf 加入以下几行

server-id = 2 
log-bin=/var/log/mysql/mysql-bin
replicate-do-db = test
replicate-ignore-db = mysql,information_schema,performance_schema

重启r1数据库生效配置文件

service mysqlq restart
# 坑2 :这时候大概率会因为没有/var/log/mysql/mysql-bin文件夹而重启失效 
# 这时候就需要我们建立这个文件并授权
mkdir /var/log/mysql
touch /var/log/mysql/mysql-bin.index
chmod 777 /var/log/mysql
chmod 777 /var/log/mysql/mysql-bin.index

重启r2数据库生效配置文件

service mysqlq restart
mkdir /var/log/mysql
touch /var/log/mysql/mysql-bin.index
chmod 777 /var/log/mysql
chmod 777 /var/log/mysql/mysql-bin.index

在r1数据库查看正在进行备份binlog文件

show master status;
# 第一次开启binlog都是mysql-bin.000001开始的

进入r2数据库执行以下命令

change master to master_host='ip1',master_user='r1',master_password='123456', master_log_file='mysql-bin.000001',master_log_pos=0;
# pos=0是开始的行数
start slave; 
#然后开启服务
show slave stauts\G;
'''
坑3 :可能有时候没开启成功,会导致数据不同步
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两行为yes一个是io负责获取主机的binlog sql负责将binlog写入从机
'''

ps:如何逐步判断主从不复制

  1. 首先判断主机binlog是否正常可以写入 不可以可能是由于binlog_do_db的配置数据库名称不对
  2. 判断从机io进程是否是yes照常执行
  3. 判断从机sql进程是否是yes照常执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值