如何在mysql中配置主从复制参数

来源:这里教程网 时间:2026-02-28 20:16:30 作者:

在 MySQL 中配置主从复制,需要正确设置主库和从库的参数,确保数据能正常同步。整个过程涉及修改配置文件、创建复制账号、导出主库数据以及启动复制链路。

1. 配置主库(Master)参数

编辑主库的 MySQL 配置文件(通常是 my.cnfmy.ini),在 [mysqld] 段中添加以下内容:

server-id = 1:设置唯一服务器 ID,主从不能重复 log-bin = mysql-bin:启用二进制日志,并指定文件前缀 binlog-format = ROW:推荐使用 ROW 格式,更安全准确 expire-logs-days = 7:自动清理 7 天前的日志(可选) binlog-do-db = your_db_name:仅同步指定数据库(可选)

修改后重启 MySQL 服务使配置生效。

2. 创建从库复制专用账号

在主库上执行以下 SQL 命令,创建一个供从库连接使用的账号:

CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

确保防火墙允许从库访问主库的 3306 端口。

3. 配置从库(Slave)参数

同样编辑从库的配置文件,在 [mysqld] 段中添加:

server-id = 2:必须与主库不同 relay-log = mysql-relay-bin:启用中继日志(可选但推荐) log-slave-updates = 1:如果从库还要作为其他库的主库,需开启 read-only = 1:防止从库被误写入数据

配置完成后重启从库 MySQL 服务。

4. 获取主库二进制日志位置并导入数据

在主库上执行:

SHOW MASTER STATUS;

记录输出中的 FilePosition 值,例如:
mysql-bin.000003 | 154

使用 mysqldump 导出主库数据并导入到从库:

mysqldump -u root -p --master-data=1 --single-transaction your_db_name > backup.sql
# 将 backup.sql 导入从库
mysql -u root -p your_db_name < backup.sql

--master-data=1 会自动记录主库的 binlog 位置。

5. 启动从库复制进程

在从库执行以下命令,配置复制源:

CHANGE MASTER TO
  MASTER_HOST='主库IP',
  MASTER_USER='repl',
  MASTER_PASSWORD='your_password',
  MASTER_LOG_FILE='mysql-bin.000003',
  MASTER_LOG_POS=154;
<p>START SLAVE;</p>

然后检查复制状态:

SHOW SLAVE STATUS\G

重点关注以下两项:

Slave_IO_Running: Yes Slave_SQL_Running: Yes

如果都为 Yes,说明复制已正常运行。

基本上就这些。只要每一步配置准确,主从复制就能稳定工作。注意定期检查复制延迟和错误日志。不复杂但容易忽略细节。

相关推荐