黔东南苗族侗族自治州网站建设_网站建设公司_Angular_seo优化
2025/12/22 0:47:59 网站建设 项目流程

MySQL主从同步架构配置笔记

一、环境准备

部署三台MySQL服务器(主机名分别为MySQL53、MySQL54、MySQL55)及一台Web服务器(模拟业务访问端),完成以下基础配置:

关闭所有服务器防火墙,确保节点间网络互通

所有MySQL服务器安装并启动MySQL服务,安装依赖包:mysql-server、mysql

二、主服务器(Master)配置

规则:业务网站连接并存储数据的MySQL服务器作为主服务器,主从架构中主服务器唯一。

2.1 启用并自定义binlog日志

MySQL默认支持binlog日志,但需自定义日志文件名以适配主从同步:

修改MySQL主配置文件

在[mysqld]配置段头部添加两项核心配置(确保唯一性和可识别性): ① server-id:主从架构中全局唯一的节点标识(如主服务器设为1) ② log-bin:自定义binlog日志文件名(如log-bin=mysql-bin)

重启MySQL服务后,通过命令验证binlog配置生效(确认当前使用的binlog文件名与配置一致)

2.2 创建主从同步专用授权账户

目的:为从服务器提供连接主服务器同步数据的专用账户,遵循最小权限原则授权:

创建同步账户:用户名repluser,密码Huawei@123

授予权限:为repluser账户授予REPLICATION SLAVE权限(核心同步权限,用于拷贝主服务器binlog日志)

2.3 查看主服务器当前binlog状态

执行相关命令(show master status;),记录当前使用的binlog日志文件名及日志偏移量(Position),后续从服务器配置需用到这两个参数。

三、从服务器(Slave)配置

核心目标:通过配置让从服务器自动同步主服务器数据,需完成以下步骤:

3.1 配置从服务器唯一标识

验证当前状态:执行命令查看从服务器配置(若输出为空,说明尚未启用从服务器角色)

修改主配置文件:在[mysqld]配置段添加server-id(需与主服务器及其他从服务器唯一,如从服务器1设为2,从服务器2设为3)

保存配置后重启MySQL服务,使server-id生效

3.2 指定主服务器信息

前置准备:从主服务器获取两项关键信息——当前使用的binlog日志文件名、日志偏移量(Position)

执行change master to命令:明确主服务器IP/主机名、端口、同步账户(repluser/Huawei@123)、binlog文件名及偏移量,完成主从关联配置

3.3 启动从服务器同步进程

初始状态验证:执行show slave status\G; 查看同步状态,此时IO线程和SQL线程状态均为NO,说明未启用从服务器角色

启动同步:执行start slave; 命令启用从服务器角色

最终验证:再次执行show slave status\G; ,确认IO线程和SQL线程状态均为YES,表明主从同步链路正常

3.4 同步状态异常解决方案

若启动slave后IO线程或SQL线程未全部为YES,处理步骤:

执行stop slave; 停止同步进程

重新执行change master to命令(核对主服务器配置信息,确保无错误)

再次执行start slave; 启动同步,重新验证状态

四、补充说明:虚拟机克隆场景问题处理

若从服务器是通过克隆已安装MySQL的虚拟机获得,会出现server-uuid冲突报错,解决方案:

执行命令删除uuid自动生成文件:rm -rf /var/lib/mysql/auto.cnf,重启MySQL服务后会自动生成新的唯一uuid。

五、主从同步功能测试

5.1 基础数据同步验证

主服务器操作:创建数据库、数据表,插入测试数据,验证数据写入正常

从服务器验证:执行查询命令查看对应数据库、数据表,确认数据与主服务器完全一致,同步生效

5.2 Web服务器访问验证

核心目标:验证Web服务器访问主服务器写入数据后,从服务器可正常同步

主服务器配置:创建Web服务器专用访问账户,授予增删改查(SELECT、INSERT、UPDATE、DELETE)权限

账户同步验证:在从服务器执行命令查看用户列表及权限,确认Web专用账户已同步

Web服务器测试:

① 从Web服务器连接主服务器MySQL(使用专用账户)

② 写入测试数据,验证数据正常存储

③ 从服务器验证:查询数据,确认同步成功

④ 可选验证:从Web服务器连接从服务器,查看同步后的数据

六、主从同步故障排查方法

6.1 错误信息查看

当IO线程或SQL线程状态异常时,通过show slave status\G; 命令可查看详细报错信息,定位故障原因。

6.2 常见故障原因及解决方案

IO线程异常: 核心原因:change master to命令中主服务器配置项错误(如IP/端口错误、同步账户密码错误、binlog文件名或偏移量错误) 解决方案:核对主服务器信息,重新执行stop slave; + change master to; + start slave; 流程

SQL线程异常: 核心原因:从服务器执行中继日志(relay log)中的SQL命令时失败,常见场景为命令依赖的数据库/数据表在从服务器不存在 解决方案:① 在主服务器对目标库表执行完全备份 ② 将备份文件拷贝至从服务器并恢复(确保库名、表结构、字符集与主服务器一致) ③ 重启同步进程

七、一主多从架构扩展

7.1 架构优势

通过增加从服务器节点,解决单从服务器场景下的单点故障问题,提升架构可用性,同时可分担主服务器读压力。

7.2 扩展配置(以MySQL55作为新增从服务器为例)

步骤1:配置唯一标识:修改MySQL55的主配置文件,指定唯一server-id(如4),重启MySQL服务

步骤2:数据一致性准备:

① 查看主服务器当前binlog日志文件名及偏移量

② 在主服务器对现有数据执行完全备份(如mysqldump命令)

③ 将备份文件拷贝至MySQL55

④ 在MySQL55恢复备份数据,确保与主服务器数据一致

步骤3:关联主服务器:执行change master to命令,配置主服务器信息(同3.2步骤)

步骤4:启动同步并验证:执行start slave; ,通过show slave status\G; 确认IO线程和SQL线程均为YES

7.3 扩展验证

主服务器操作:插入新测试数据

新增从服务器验证:查询数据,确认同步成功

权限配置:在新增从服务器(MySQL55)创建Web访问专用账户并授予对应权限

八、其他常见主从同步架构

1. 主-从-从架构:在一主多从基础上,新增从服务器从现有从服务器同步数据,进一步分担主服务器压力

2. 主-主架构(互为主从):两台服务器双向同步,均支持Web服务器访问,提升业务可用性(需注意避免数据冲突)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询