博客
关于我
mysql 5.7 主从配置
阅读量:798 次
发布时间:2023-02-10

本文共 1993 字,大约阅读时间需要 6 分钟。

MySQL主从复制详细配置与故障排除

MySQL主从复制的原理

MySQL 的主从复制机制采用了三线程模型来实现数据同步。你可能对具体的复制过程不太熟悉,那我们就从基础开始讲解。

1.1 复制线程的作用

  • I/O 线程:当从服务器接收到START SLAVE命令时,会创建一个I/O线程来连接主服务器,并读取主服务器的二进制日志(Binlog)。
  • SQL 线程:负责读取中继日志(Relay Log),并执行其中的更新操作。

了解了这些线程的作用后,接下来我们就来看看如何在实际环境中配置主从服务器。

环境配置

1. 环境版本

[root@localhost ~]# cat /etc/redhat-releaseCentOS Linux release 7.3.1611 (Core)

2. 环境搭建

  • 使用oneinstack安装MySQL:
# 安装完成后,验证MySQL版本MySQL [(none)]> status;

主服务器配置

1. 查看并配置二进制日志

[root@localhost ~]# vi /etc/my.cnf
  • 查找log_bin = mysql-bin,如果没有该行,添加该行。
  • 找到server-id = 1,记录主服务器的ID,确保它与从服务器的ID不同。

2. 启用二进制日志

MySQL [(none)]> show variables like 'log_bin';

3. 查看主服务器状态

MySQL [(none)]> show master status;
  • File列显示当前二进制日志文件名,Position列显示日志的偏移量。
  • 记录这些值,以便从服务器进行相应配置。

4. 创建访问用户

MySQL [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.%' IDENTIFIED BY 'mysql';

从服务器配置

1. 查看并配置二进制日志

[root@localhost ~]# vi /etc/my.cnf
  • 修改server-id为一个唯一的ID,不与主服务器重复。
  • 配置完成后,重启MySQL服务。

2. 查看从服务器状态

[root@localhost ~]# vi /data/mysql/auto.cnf

3. 配置从服务器的主从关系

MySQL [(none)]> CHANGE MASTER TO    -> MASTER_HOST='192.168.1.103',    -> MASTER_USER='repl',    -> MASTER_PASSWORD='mysql',    -> MASTER_LOG_FILE='mysql-bin.000017',    -> MASTER_LOG_POS=503;

4. 启动从服务器的复制

MySQL [(none)]> start slave;

5. 验证从服务器状态

MySQL [(none)]> show slave status \G;
  • Slave_IO_RunningSlave_SQL_Running都应为Yes,否则查看mysql-error.log排查问题。

6. 查看错误日志

MySQL [(none)]> show variables like 'log_error%';

故障排除

1. 主服务器或从服务器异常

如果主服务器或从服务器出现问题,如何处理?

  • 主服务器故障:重启主服务器后,从服务器会自动重新连接并继续复制。
  • 从服务器故障:从服务器在恢复后会重新连接主服务器,继续同步。

2. 复制中断

如果出现Last_IO_Errno: 2003错误,说明从服务器无法连接到主服务器。

MySQL [(none)]> stop slave;MySQL [(none)]> reset slave;MySQL [(none)]> CHANGE MASTER TO    -> MASTER_HOST='192.168.1.103',    -> MASTER_USER='repl',    -> MASTER_PASSWORD='mysql',    -> MASTER_LOG_FILE='mysql-bin.000017',    -> MASTER_LOG_POS=503;MySQL [(none)]> start slave;

3. 查看二进制日志事件

如果需要查看具体的二进制日志事件,可以执行以下命令:

MySQL [(none)]> show binlog events in 'mysql-bin.000017';

通过以上步骤,你应该能够完成MySQL主从复制的配置和管理。如果有任何问题,可以参考MySQL官方文档或相关技术论坛获取更多帮助。

转载地址:http://llffk.baihongyu.com/

你可能感兴趣的文章
mysql tinyint 1 boolean,MySQL tinyint to boolean
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
MySQL Troubleshoting:Waiting on query cache mutex
查看>>
mysql union orderby 无效
查看>>
mysql v$session_Oracle 进程查看v$session
查看>>
mysql VS mongoDB
查看>>
mysql vue 菜谱_Vue+MySQL实现购物车的增删改查
查看>>
mysql where中如何判断不为空
查看>>
mysql where中如何判断不为空
查看>>
MySQL Workbench 使用手册:从入门到精通
查看>>
MySQL Workbench 数据库建模详解:从设计到实践
查看>>
MySQL Workbench 数据建模全解析:从基础到实践
查看>>
mysql workbench6.3.5_MySQL Workbench
查看>>
MySQL Workbench安装教程以及菜单汉化
查看>>
MySQL Xtrabackup 安装、备份、恢复
查看>>
mysql [Err] 1436 - Thread stack overrun: 129464 bytes used of a 286720 byte stack, and 160000 bytes
查看>>
MySQL _ MySQL常用操作
查看>>
MySQL – 导出数据成csv
查看>>
MySQL —— 在CentOS9下安装MySQL
查看>>
MySQL —— 视图
查看>>