下面给你一份在 Debian 上配置 MySQL 主从复制(Master-Slave / 主从同步) 的实用步骤(以 MySQL 8.0 为例,5.7 也基本适用)。
sudo apt update
sudo apt install mysql-server
编辑 /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
mysql -u root -p
CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
记录:
mysql-bin.000001)154)编辑 /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
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;
START SLAVE;
SHOW SLAVE STATUS\G
重点看:
Slave_IO_Running: YesSlave_SQL_Running: Yes主库:
CREATE DATABASE test_db;
从库:
SHOW DATABASES;
能看到 test_db 即成功。
/var/lib/mysql/auto.cnf 后重启sudo ufw allow 3306
mysqldump 主库并导入从库,再配置同步如果你用的是 MySQL 5.7 / MariaDB / 容器 / GTID 模式,可以告诉我,我可以给你对应版本的具体配置。