MySQL 主从同步配置操作指南
分享 MySQL 跨服务器实现数据自动同步(主从复制)的配置经验。主要涉及主库与从库的核心参数设置、用户权限分配、数据导入锁定处理以及同步链路的启动验证。
主服务器配置
首先需要对主数据库服务器进行修改。进入配置文件 /etc/my.cnf(Windows 环境下通常为 my.ini),在 [mysqld] 节中进行如下设置:
1. 开启二进制日志 (Binlog)
[mysqld]
# log-bin 是日志文件的前缀,可自定义名称(如服务器名)
# 若不带路径,默认写入 /var/lib/mysql 目录
log-bin=mysql-bin
# server-id 在同步体系中必须唯一
# 取值范围:1 到 2^32-1 之间的整数
server-id=1
2. 控制备份范围
根据需要决定是否过滤特定数据库:
binlog-do-db = 数据库名:仅备份指定数据库。binlog-ignore-db = 数据库名:排除指定数据库。- 若不设置以上两项,将备份全部数据库。
3. InnoDB 稳定性优化
若使用 InnoDB 引擎,为防止数据丢失需确保以下设置(注意:innodb_flush_log_at_trx_commit=1 可能导致写性能下降,可根据情况调整为 2):
innodb_flush_log_at_trx_commit=1
sync_binlog=1
同时务必检查未设置 skip-networking,否则网络通信会被禁用导致无法同步。
修改完成后重启 MySQL 服务使配置生效。
主库账户授权
为了允许从库连接主库,需要创建一个专用的同步账户。登录主库 MySQL:
mysql -uroot –p
执行授权命令(假设主库 IP 为 192.168.1.1,从库 IP 为 192.168.1.2):
grant replication slave on *.* to 'beifen'@'192.168.1.2' identified by '密码';
flush privileges;
查看当前主库的二进制日志状态,记录 File 和 Position 的值,这将在从库配置时使用:
SHOW MASTER STATUS;
从服务器配置
编辑从库的配置文件 /etc/my.cnf,重点修改 server-id 以确保其唯一性(例如设置为 2)。通常不需要在从库开启 binlog。保存后重启 MySQL 服务。
数据处理与从库链路建立
如果主从库之间存在已有数据差异,需先进行数据迁移并确保一致性。
- 锁定主库:在主库执行
FLUSH TABLES WITH READ LOCK;防止写入新数据。 - 导出数据:将主库数据导出。
- 导入数据:将数据导入到从库。
- 解锁主库:完成导入后回到主库执行
UNLOCK TABLES;。
随后在从库执行 change master to 命令指向主库信息:
CHANGE MASTER TO
MASTER_HOST='192.168.1.1',
MASTER_USER='beifen',
MASTER_PASSWORD='密码',
MASTER_LOG_FILE='mysql-bin.000001', # 替换为主库 File 值
MASTER_LOG_POS=107; # 替换为主库 Position 值
启动同步与状态检查
在从库中启动同步进程:
start slave;
最后验证同步状态。执行以下命令,若 Slave_IO_Running 和 Slave_SQL_Running 均显示为 Yes,则表明主从复制链路正常建立。
show slave status\G
以上就是 MySQL 主从同步配置的详细内容,更多关于 MySQL 数据库运维的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













