配置MySQL主从复制涉及多个步骤,包括设置主服务器、从服务器以及确保数据同步。以下是一个基本的步骤指南:
1. 准备环境主服务器(Master):这是数据的源服务器,所有的写操作都会在这里进行。从服务器(Slave):这是数据的备份服务器,所有的读操作都会在这里进行。2. 配置主服务器编辑主服务器的MySQL配置文件(通常是my.cnf
或my.ini
):
[mysqld]server-id=1# 主服务器的唯一标识符log_bin=mysql-bin# 启用二进制日志binlog_format=ROW# 使用ROW格式的二进制日志
重启MySQL服务以应用配置更改:
sudo systemctl restart mysql
创建一个用于复制的用户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';FLUSH PRIVILEGES;
获取主服务器的二进制日志坐标:
SHOW MASTER STATUS;
记下File
和Position
,这些将在从服务器上使用。
编辑从服务器的MySQL配置文件(通常是my.cnf
或my.ini
):
[mysqld]server-id=2# 从服务器的唯一标识符relay_log=mysql-relay-bin# 启用中继日志log_bin=mysql-bin# 启用二进制日志binlog_format=ROW# 使用ROW格式的二进制日志read_only=ON# 从服务器默认只读
重启MySQL服务以应用配置更改:
sudo systemctl restart mysql
配置从服务器连接到主服务器:
CHANGE MASTER TOMASTER_HOST='master_ip_address',# 主服务器的IP地址MASTER_USER='repl',MASTER_PASSWORD='password',MASTER_LOG_FILE='recorded_file_name',# 上一步中获取的文件名MASTER_LOG_POS=recorded_position;# 上一步中获取的位置
启动从服务器复制进程:
START SLAVE;
验证复制状态:
SHOW SLAVE STATUS\G;
确保Slave_IO_Running
和Slave_SQL_Running
都是YES
,并且Last_IO_Error
和Last_SQL_Error
都是空的。
Slave_IO_Running
和Slave_SQL_Running
的状态,查看Last_IO_Error
和Last_SQL_Error
的错误信息。二进制日志文件过大:定期清理和优化二进制日志文件。网络问题:确保主从服务器之间的网络连接稳定。通过以上步骤,你应该能够成功配置MySQL主从复制。如果有任何问题,请参考MySQL官方文档或寻求社区帮助。