温馨提示×

debian mysql如何做主从

小樊
50
2026-09-04 23:21:47
栏目: 云计算

下面给你一份在 Debian 上配置 MySQL 主从复制(Master-Slave / 主从同步) 的实用步骤(以 MySQL 8.0 为例,5.7 也基本适用)。


一、环境准备

  • 主库(Master):192.168.1.10
  • 从库(Slave):192.168.1.11
  • 两台都安装好 MySQL
sudo apt update
sudo apt install mysql-server

二、主库配置(Master)

1. 修改配置文件

编辑 /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = row
bind-address = 0.0.0.0

server-id 必须唯一
log_bin 开启二进制日志(主从核心)

重启 MySQL:

sudo systemctl restart mysql

2. 创建复制账号

mysql -u root -p

CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

3. 查看主库状态

SHOW MASTER STATUS;

记录:

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

三、从库配置(Slave)

1. 修改配置文件

编辑 /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
read_only = 1

重启 MySQL:

sudo systemctl restart mysql

2. 配置主库信息

mysql -u root -p

CHANGE MASTER TO
MASTER_HOST='192.168.1.10',
MASTER_USER='repl',
MASTER_PASSWORD='password',
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

四、测试主从

主库:

CREATE DATABASE test_db;

从库:

SHOW DATABASES;

能看到 test_db 即成功。


五、常见问题

  1. UUID 冲突(克隆机器常见)
    • 删除 /var/lib/mysql/auto.cnf 后重启
  2. 防火墙
    sudo ufw allow 3306
    
  3. 已有数据
    • 先 mysqldump 主库并导入从库,再配置同步

如果你用的是 MySQL 5.7 / MariaDB / 容器 / GTID 模式,可以告诉我,我可以给你对应版本的具体配置。

0 踩