MySQL主从复制的原生安装配置方案(非Docker环境)
作者:朝阳581
本文介绍了MySQL主从复制的原生安装配置方案(非Docker环境),包含主库和从库的完整配置步骤,并通过代码示例讲解的非常详细,需要的朋友可以参考下
MySQL 主从复制 — 双服务器灾备方案(原生安装)
适用场景:MySQL 直接安装在系统上(非 Docker)
环境要求
| 项目 | 主库 | 从库 |
|---|---|---|
| 服务器IP | 192.168.1.100(示例) | 192.168.1.101(示例) |
| MySQL版本 | 5.6.51 | 5.6.51 |
| 端口 | 3306 | 3306 |
第一部分:主库配置
步骤 1:开启 binlog
Linux 编辑 /etc/my.cnf,Windows 编辑 C:\ProgramData\MySQL\MySQL Server 5.6\my.ini:
[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 root@192.168.1.101:/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_FILE 和 MASTER_LOG_POS 从主库 SHOW MASTER STATUS 获取
步骤 4:检查状态
SHOW SLAVE STATUS\G
必须全是 Yes:
| 字段 | 必须等于 |
|---|---|
Slave_IO_Running | Yes |
Slave_SQL_Running | Yes |
Seconds_Behind_Master | 0 |
第三部分:故障切换(主库挂了)
- 从库上检查已追平:
SHOW SLAVE STATUS→Slave has read all relay log - 提升为新的主库:
STOP SLAVE; RESET SLAVE ALL; SET GLOBAL read_only = OFF;
- 应用连接 IP 改为从库的 IP,重启应用
一句话:主库开 binlog → 建复制用户 → 导出数据给从库 → 从库导入 → CHANGE MASTER → START SLAVE
以上就是MySQL主从复制的原生安装配置方案(非Docker环境)的详细内容,更多关于MySQL主从复制原生安装配置的资料请关注脚本之家其它相关文章!
