在CentOS上配置MySQL主从复制(Master-Slave Replication)涉及多个步骤,包括设置主服务器(Master)、从服务器(Slave)以及确保网络和安全配置正确。以下是一个详细的步骤指南:
首先,确保在主服务器和从服务器上都安装了MySQL。
sudo yum install -y mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo yum install -y mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
登录到MySQL并初始化主服务器:
mysql_secure_installation
按照提示完成安全设置,包括删除匿名用户、禁止远程root登录等。
找到主服务器的二进制日志文件名和位置:
SHOW MASTER STATUS;
记下File
和Position
的值。
编辑从服务器的MySQL配置文件(通常是/etc/my.cnf
或/etc/mysql/my.cnf
):
[mysqld]
server-id=1
relay-log=relay-bin
log_bin=mysql-bin
read_only=ON
sudo systemctl restart mysqld
登录到从服务器MySQL并设置从服务器:
CHANGE MASTER TO
MASTER_HOST='master_ip_address',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
START SLAVE;
检查从服务器的复制状态:
SHOW SLAVE STATUS\G;
确保Slave_IO_Running
和Slave_SQL_Running
都是YES
,并且Last_IO_Error
和Last_SQL_Error
是空的。
在主服务器上插入一些数据,然后在从服务器上查询这些数据以验证复制是否成功。
INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2');
SELECT * FROM your_table;
如果从服务器上显示了刚刚插入的数据,说明复制配置成功。
确保主服务器和从服务器之间的网络是安全的,并且只有必要的端口(通常是3306)是开放的。可以使用防火墙(如firewalld
)来管理端口。
通过以上步骤,你可以在CentOS上成功配置MySQL主从复制。确保每一步都仔细检查,以避免配置错误。