温馨提示×

centos mysql怎样设置主从

小樊
39
2026-10-05 16:33:18
栏目: 云计算

下面以 CentOS 7/8 + MySQL 5.7/8.0 为例,说明 MySQL 主从复制(Master-Slave) 的基本配置步骤。


一、环境准备

假设:

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

二、主库(Master)配置

1. 修改 MySQL 配置文件

编辑 /etc/my.cnf 或 /etc/mysql/my.cnf

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

说明:

  • server-id 必须唯一
  • log-bin 开启二进制日志(主从必需)

重启 MySQL:

systemctl restart mysqld

2. 创建主从复制账号

登录 MySQL:

mysql -u root -p

执行:

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

3. 查看主库状态

SHOW MASTER STATUS;

记录:

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

三、从库(Slave)配置

1. 修改 MySQL 配置文件

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

重启 MySQL:

systemctl restart mysqld

2. 配置主库信息

登录从库 MySQL:

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

3. 启动从库复制

START SLAVE;

4. 查看从库状态

SHOW SLAVE STATUS\G

重点检查:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

都为 Yes 表示主从同步正常。


四、测试主从

在主库创建数据库:

CREATE DATABASE test_db;

在从库查看:

SHOW DATABASES;

能看到 test_db 即成功。


五、常见问题

1. Slave_IO_Running: Connecting

  • 防火墙未放行 3306
  • 主库 IP/账号/密码错误
  • 网络不通

2. 主从数据不一致

  • 初始数据建议先备份导入
mysqldump -u root -p --all-databases > all.sql

3. 8.0 密码插件问题

如报错,可改用:

CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

如果你需要:

  • Docker 版 MySQL 主从
  • GTID 主从
  • 一主多从 / 双主

可以直接告诉我你的使用场景。

0 踩