Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL主从复制原生安装配置

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

作者:朝阳581

本文介绍了MySQL主从复制的原生安装配置方案(非Docker环境),包含主库和从库的完整配置步骤,并通过代码示例讲解的非常详细,需要的朋友可以参考下

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

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

环境要求

项目主库从库
服务器IP192.168.1.100(示例)192.168.1.101(示例)
MySQL版本5.6.515.6.51
端口33063306

第一部分:主库配置

步骤 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_FILEMASTER_LOG_POS 从主库 SHOW MASTER STATUS 获取

步骤 4:检查状态

SHOW SLAVE STATUS\G

必须全是 Yes

字段必须等于
Slave_IO_RunningYes
Slave_SQL_RunningYes
Seconds_Behind_Master0

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

  1. 从库上检查已追平:SHOW SLAVE STATUSSlave has read all relay log
  2. 提升为新的主库:
STOP SLAVE;
RESET SLAVE ALL;
SET GLOBAL read_only = OFF;
  1. 应用连接 IP 改为从库的 IP,重启应用

一句话:主库开 binlog → 建复制用户 → 导出数据给从库 → 从库导入 → CHANGE MASTER → START SLAVE

以上就是MySQL主从复制的原生安装配置方案(非Docker环境)的详细内容,更多关于MySQL主从复制原生安装配置的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文