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

 更新时间:2026年05月31日 08:52:52   作者:朝阳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主从复制原生安装配置的资料请关注脚本之家其它相关文章!

相关文章

  • mysql_fetch_row()与mysql_fetch_array()的使用介绍

    mysql_fetch_row()与mysql_fetch_array()的使用介绍

    本篇文章是对mysql_fetch_row()与mysql_fetch_array()的使用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • SQL面试题:求时间差之和(有重复不计)

    SQL面试题:求时间差之和(有重复不计)

    这篇文章主要介绍了SQL面试题:求时间差之和(有重复不计),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • win10免安装版本的MySQL安装配置教程

    win10免安装版本的MySQL安装配置教程

    这篇文章主要为大家详细介绍了win10免安装版本的MySQL的下载安装和配置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • MySQL中create table as 与like的区别分析

    MySQL中create table as 与like的区别分析

    这篇文章主要介绍了MySQL中create table as 与like的区别,结合实例分析了二者在使用中的具体区别与主要用途,需要的朋友可以参考下
    2016-01-01
  • MySQL中表锁和行锁机制浅析(源码篇)

    MySQL中表锁和行锁机制浅析(源码篇)

    在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足,下面这篇文章主要给大家介绍了MySQL中表锁和行锁机制浅析的相关资料,需要的朋友可以参考下
    2022-11-11
  • 详解Mysql之mysqlbackup备份与恢复实践

    详解Mysql之mysqlbackup备份与恢复实践

    这篇文章主要介绍了详解Mysql之mysqlbackup备份与恢复实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • mysql和hive中几种关联(join/union)区别及说明

    mysql和hive中几种关联(join/union)区别及说明

    本文主要介绍了MySQL和Hive中各种连接和合并操作的用法,包括INNER JOIN、LEFT JOIN、RIGHT JOIN、LEFT SEMI JOIN以及UNION和UNION ALL,同时,也提到了Hive在处理连接时的一些特殊规则和限制
    2025-11-11
  • 在OneProxy的基础上实行MySQL读写分离与负载均衡

    在OneProxy的基础上实行MySQL读写分离与负载均衡

    基于Libevent机制实现,单个实例可以实现25万的SQL转发能力,用一个OneProxy节点可以带动整个MySQL集群,为业务发展贡献一份力量,下面由小编来为大家简单说说
    2019-05-05
  • mysql 5.5 安装配置图文教程

    mysql 5.5 安装配置图文教程

    这篇文章主要为大家详细介绍了mysql5.5安装配置方法的图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • mysql技巧:提高插入数据(添加记录)的速度

    mysql技巧:提高插入数据(添加记录)的速度

    这篇文章主要介绍了mysql技巧:提高插入数据(添加记录)的速度,需要的朋友可以参考下
    2014-12-12

最新评论