mysql主从同步搭建流程

本文详细介绍了MySQL主从同步配置流程,包括master和slave的配置修改、状态检查及半同步复制的实现。通过具体步骤指导如何设置binlog、授权、同步参数,并验证配置结果。

1.master配置文件修改

log_bin=mysql-bin: 表示开启binlog功能

sync-binlog=1: 每次执行事务操作,都会与磁盘同步。

binlog-ignore-db : 不需要同步得库

binlog-do-db: 需要同步得表

配置修改完成后,需要重启MYSQL.

主库授权可以获取主库数据得从库

 

2.slave配置文件修改

 

 show slave status;查看同步状态,没设置过是空得。

 配置从库同步信息:

master_host: 主库地址

master_port: 主库端口

master_user,master_password: 主库账号密码

master_log_file,master_log_post: 查看主库状态时得file_gtid_set和position

启动slave查看同步状态

 slave_io_running :yes

slave_sql_running:yes

表示配置成功

 

3.半同步复制配置

查看是否支持动态加载插件

查看mysql插件

安装半同步插件

开启半同步复制和调整复制时间为1秒

从库配置半同步复制

 

并行复制参数配置:

 

<think>好的,用户想了解如何搭建MySQL主从同步的指南或最佳实践。我需要根据提供的引用资料整理出一个步骤清晰的教程。首先,我需要回顾用户提供的引用内容,看看有哪些关键步骤和注意事项。 引用1提到一主一从是基础,引用2解释了主从复制的原理和异步复制方式,引用3展示了查看同步状态的命令,引用4强调了参数一致性和版本统一的重要性,引用5给出了CHANGE MASTER TO的命令示例。这些都是搭建主从的关键点。 接下来,我需要按照逻辑顺序组织步骤。通常主从搭建流程包括:环境准备、主库配置、从库配置、同步数据、启动复制、验证状态。同时需要注意参数设置、版本一致、权限配置等最佳实践。 需要确保主库开启binlog,创建复制账号,配置server-id。从库则配置server-id,指定主库信息,启动IO和SQL线程。数据同步部分可能需要使用mysqldump或物理备份。引用3中的SHOW SLAVE STATUS命令可以用来检查同步状态,IO和SQL线程必须都是Yes。 还要考虑可能的问题,比如防火墙设置,端口开放,权限是否正确。引用4提到参数一致,比如innodb_buffer_pool_size,所以需要提醒用户检查配置。版本统一也很重要,避免兼容性问题。 用户可能需要具体的命令示例,比如如何执行CHANGE MASTER TO,如何查看状态,如何导出数据。引用5中的命令需要调整参数,比如MASTER_HOST、MASTER_USER等,确保用户替换为自己的信息。 另外,最佳实践部分可以包括使用GTID、半同步复制、监控延迟等,这些在引用中未详细提到,但根据经验可以作为补充,但需要标注是扩展建议。 需要检查是否有遗漏的步骤,比如重启MySQL服务使配置生效,备份数据时的锁表处理,或者使用xtrabackup减少停机时间。引用中没有提到这些,但根据知识库,这些都是常见做法,可以适当加入。 最后,生成相关问题,可能涉及主从原理、延迟处理、故障排查等,参考用户之前的示例问题结构。</think>### MySQL主从同步搭建指南(一主一从) #### 一、环境准备 1. **服务器要求**:主从服务器需网络互通,建议使用相同MySQL版本(推荐5.7+)[^4] 2. **参数检查**:确保主从库的$server\_id$唯一,主库需开启二进制日志 ```ini # 主库my.cnf配置 [mysqld] server_id=1 log_bin=mysql-bin binlog_format=ROW ``` #### 二、主库配置步骤 1. **创建复制账号** ```sql CREATE USER 'repluser'@'%' IDENTIFIED BY 'Password123!'; GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%'; FLUSH PRIVILEGES; ``` 2. **查看主库状态** ```sql SHOW MASTER STATUS; ``` 记录输出中的$File$(如mysql-bin.000003)和$Position$(如154)[^5] #### 三、从库配置步骤 1. **基础配置** ```ini # 从库my.cnf配置 [mysqld] server_id=2 relay_log=relay-bin read_only=1 ``` 2. **数据同步**(任选其一) - **逻辑备份**(推荐小型数据库) ```bash mysqldump -h主库IP -uroot -p --all-databases --master-data=1 > db.sql mysql -uroot -p < db.sql ``` - **物理备份**(适合大型数据库,使用XtraBackup) 3. **启动复制线程** ```sql CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='repluser', MASTER_PASSWORD='Password123!', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=154; START SLAVE; ``` #### 四、验证同步状态 ```sql SHOW SLAVE STATUS\G ``` 确认以下关键指标: - $Slave\_IO\_Running: Yes$[^3] - $Slave\_SQL\_Running: Yes$[^3] - $Seconds\_Behind\_Master$应逐渐趋近0 #### 五、最佳实践建议 1. **网络优化**:主从服务器部署在同一局域网,延迟应<1ms 2. **安全加固**:限制repluser账号的访问IP,启用SSL加密连接 3. **监控配置**:定期检查$SHOW SLAVE STATUS$,设置延迟告警阈值 4. **高可用扩展**:建议配置半同步复制(需安装插件): ```sql INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; SET GLOBAL rpl_semi_sync_master_enabled=1; ``` #### 六、故障排查要点 1. **连接问题**:检查防火墙是否开放3306端口 2. **权限错误**:确认repluser账号密码正确且有REPLICATION SLAVE权限 3. **数据冲突**:从库发生写操作会导致$Last\_SQL\_Error$,需重建同步 ```mermaid graph TD A[主库] -->|二进制日志流| B[从库IO线程] B --> C[中继日志] C --> D[从库SQL线程] D --> E[应用数据变更] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值