温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MySQL主从同步怎么弄

发布时间:2026-10-16 20:37:58 来源:亿速云 阅读:91 作者:小樊 栏目:系统运维

下面给你一个实用版的 MySQL 主从同步(Replication)搭建流程,以 Linux + MySQL 8.x 为例,其他版本思路基本一致。


一、环境准备

假设:

  • 主库(Master):192.168.1.10
  • 从库(Slave):192.168.1.11
  • MySQL 版本一致(建议相同)

二、主库配置(Master)

1. 修改配置文件

编辑 my.cnf(一般在 /etc/my.cnf 或 /etc/mysql/my.cnf)

[mysqld]
server-id = 1
log-bin = mysql-bin
binlog_format = ROW

server-id 必须唯一

2. 重启 MySQL

systemctl restart mysqld

3. 创建同步账号

CREATE USER 'repl'@'192.168.1.11' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.11';
FLUSH PRIVILEGES;

4. 查看主库状态

SHOW MASTER STATUS;

记下:

  • File(如 mysql-bin.000001)
  • Position(如 154)

三、从库配置(Slave)

1. 修改配置文件

[mysqld]
server-id = 2
relay-log = relay-bin

2. 重启 MySQL

systemctl restart mysqld

3. 配置主库信息

CHANGE MASTER TO
MASTER_HOST='192.168.1.10',
MASTER_USER='repl',
MASTER_PASSWORD='密码',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;

4. 启动从库

START SLAVE;

5. 查看状态

SHOW SLAVE STATUS\G

重点看:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes

四、测试同步

主库:

CREATE DATABASE test_db;

从库:

SHOW DATABASES;

能看到 test_db 即成功 ✅


五、常见问题

1. Slave_IO_Running: No

  • 网络不通
  • 账号权限不对
  • MASTER_LOG_POS 写错

2. Slave_SQL_Running: No

  • 从库已有数据冲突
  • 解决:
STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;

3. 已运行的主库如何加从库?

  • 主库先锁表 / 备份
FLUSH TABLES WITH READ LOCK;
  • 用 mysqldump 导出
  • 从库导入后再 CHANGE MASTER

六、可选增强

  • 半同步复制(Semi-Sync)
  • GTID 模式(推荐)
  • 一主多从 / 双主

如果你告诉我:

  • MySQL 版本
  • 是否已有数据
  • 单机还是 Docker

我可以给你更精确的步骤或命令脚本。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手