MySQL主从复制-原生环境安装配置指南(非Docker版)

作者:袖梨 2026-05-31

在非Docker环境下搭建MySQL主从复制集群,是保障数据安全的重要灾备方案。本文将详细讲解原生安装配置的全流程。

MySQL 主从复制 — 双服务器灾备方案(原生安装)

适用场景:MySQL 直接安装在系统上(非 Docker)

MySQL主从复制的原生安装配置方案(非Docker环境)

环境要求

项目 主库 从库
服务器IP 192.168.1.100(示例) 192.168.1.101(示例)
MySQL版本 5.6.51 5.6.51
端口 3306 3306

第一部分:主库配置

步骤 1:开启 binlog

根据操作系统不同,编辑对应的配置文件:

[mysqld]
log-bin = mysql-bin
server-id = 1
binlog-format = ROW
expire-logs-days = 7

完成修改后需要重启MySQL服务:

# Linux
systemctl restart mysql
# Windows
net stop mysql56 && net start mysql56

通过以下命令验证配置是否生效:

SHOW MASTER STATUS;

步骤 2:创建复制用户

CREATE USER 'replicator'@'%' IDENTIFIED BY '你的密码';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;

步骤 3:开放防火墙

# Linux
firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload
# Windows(PowerShell)
New-NetFirewallRule -DisplayName "MySQL" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow

第二部分:从库配置

步骤 1:配置 server-id

[mysqld]
server-id = 2

修改配置后需要重启MySQL服务。

步骤 2:复制数据

主库操作

mysqldump -u root -p --all-databases --master-data --single-transaction > master_dump.sql

传输到从库

scp master_dump.sql [email protected]:/tmp/

从库恢复

mysql -u root -p < /tmp/master_dump.sql

步骤 3:启动复制

CHANGE MASTER TO 
  MASTER_HOST = '主库IP',
  MASTER_PORT = 3306,
  MASTER_USER = 'replicator',
  MASTER_PASSWORD = '你的密码',
  MASTER_LOG_FILE = 'mysql-bin.xxxxxx',
  MASTER_LOG_POS = xxxx;
START SLAVE;

注意:MASTER_LOG_FILEMASTER_LOG_POS需通过主库执行SHOW MASTER STATUS获取。

步骤 4:检查状态

SHOW SLAVE STATUSG

以下三个关键指标必须全部显示为Yes:

字段 必须等于
Slave_IO_Running Yes
Slave_SQL_Running Yes
Seconds_Behind_Master 0

第三部分:故障切换(主库挂了)

  1. 首先确认从库是否已同步全部数据:SHOW SLAVE STATUSSlave has read all relay log
  2. 执行以下命令将从库提升为新主库:
STOP SLAVE;
RESET SLAVE ALL;
SET GLOBAL read_only = OFF;
  1. 最后修改应用连接配置,将IP指向新的主库地址

流程总结:主库开 binlog → 建复制用户 → 导出数据给从库 → 从库导入 → CHANGE MASTER → START SLAVE

通过上述步骤,您已成功搭建MySQL主从复制集群,为数据安全提供了可靠保障。如需了解更多数据库配置技巧,可参考以下相关技术文档。

相关文章

精彩推荐