下面给你一份**在 Debian 上配置 MySQL 主从复制(Master–Slave)**的实用步骤(以 MySQL 8.x / 5.7 为主,命令通用)。
apt install mysql-server)nano /etc/mysql/mysql.conf.d/mysqld.cnf
确保有以下内容:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = row
bind-address = 0.0.0.0
重启 MySQL:
systemctl restart mysql
mysql -u root -p
CREATE USER 'repl'@'192.168.1.20' IDENTIFIED WITH mysql_native_password BY '密码';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.20';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
记下:
File(如 mysql-bin.000001)Position(如 154)nano /etc/mysql/mysql.conf.d/mysqld.cnf
server-id = 2
relay-log = /var/log/mysql/relay-bin
read_only = 1
重启 MySQL:
systemctl restart mysql
mysql -u root -p
CHANGE MASTER TO
MASTER_HOST='192.168.1.10',
MASTER_USER='repl',
MASTER_PASSWORD='密码',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS\G
重点看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
都为 Yes 即成功。
# Master
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
# 另开窗口导出
mysqldump -u root -p --all-databases > full.sql
UNLOCK TABLES;
# Slave
mysql -u root -p < full.sql
如果你告诉我:
我可以给你更精确的配置方案。