
本文将指导您如何在Linux系统上配置MySQL主从复制。 假设您已在两台服务器上安装并运行MySQL,且它们之间网络互通。
一、主服务器配置
-
修改主服务器MySQL配置文件: (通常位于
/etc/my.cnf或/etc/mysql/my.cnf) 添加或修改以下内容:[mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_do_db = mydb # 替换为需要复制的数据库名称
-
重启MySQL服务: 应用配置文件更改。
sudo systemctl restart mysql
-
创建复制用户: 登录MySQL,创建一个用于复制的专用用户:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_strong_password'; # 替换 'your_strong_password' 为强密码 GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; FLUSH PRIVILEGES;
-
获取二进制日志信息: 记录下主服务器的二进制日志文件名称和位置:
SHOW MASTER STATUS;
记下
File和Position的值,后续从服务器配置需要用到。
二、从服务器配置
-
修改从服务器MySQL配置文件: (通常位于
/etc/my.cnf或/etc/mysql/my.cnf) 添加或修改以下内容:[mysqld] server-id = 2 relay_log = /var/log/mysql/mysql-relay-bin.log log_bin = /var/log/mysql/mysql-bin.log replicate_do_db = mydb # 替换为需要复制的数据库名称
-
重启MySQL服务: 应用配置文件更改。
sudo systemctl restart mysql
-
配置从服务器复制: 登录MySQL,执行以下命令,将主服务器信息配置到从服务器:
CHANGE MASTER TO MASTER_HOST='master_ip_address', # 替换为'主服务器IP地址' MASTER_USER='replicator', MASTER_PASSWORD='your_strong_password', # 替换为'你的强密码' MASTER_LOG_FILE='mysql-bin.000001', # 替换为主服务器的File值 MASTER_LOG_POS=123; # 替换为主服务器的Position值 -
启动从服务器复制进程:
START SLAVE;
-
验证复制状态: 检查复制进程是否正常运行:
SHOW SLAVE STATUS\G
确认
Slave_IO_Running和Slave_SQL_Running都显示为Yes。 如果为No,请检查错误信息并进行相应调整。
三、复制验证
在主服务器上插入数据,然后在从服务器上查询,验证数据是否已成功复制。
-- 主服务器
USE mydb;
INSERT INTO mytable (column1, column2) VALUES ('value1', 'value2');
-- 从服务器
USE mydb;
SELECT * FROM mytable;
重要提示:
- 确保主服务器和从服务器的时间同步。
- 注意避免自增主键冲突。
- 定期监控复制状态,及时处理潜在错误。
完成以上步骤后,您的Linux环境下的MySQL主从复制就配置完成了。 请务必使用强密码并定期备份数据。










