在 CentOS 上搭建 MySQL 主从复制,需要将一个 MySQL 服务器配置为主服务器(Master),另一个配置为从服务器(Slave)。以下是基本的步骤:
在主服务器上进行配置:
1. 编辑 MySQL 配置文件
打开 MySQL 配置文件(一般位于 /etc/my.cnf 或 /etc/mysql/my.cnf),确保以下配置项存在并启用:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=your_database_name
其中:
server-id是服务器的唯一标识,确保每个服务器的server-id不同。log-bin启用二进制日志,用于记录主服务器上的所有更改。binlog-do-db指定需要复制的数据库名。
2. 重启 MySQL 服务
重启 MySQL 服务以应用配置更改:
sudo systemctl restart mysqld
3. 创建用于复制的账号
登录到 MySQL 控制台,并创建用于复制的账号:
CREATE USER 'repl_user'@'slave_ip' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'slave_ip';
FLUSH PRIVILEGES;
替换 repl_user、slave_ip 和 password 为实际的用户名、从服务器IP地址和密码。
在从服务器上进行配置:
1. 编辑 MySQL 配置文件
打开 MySQL 配置文件,添加以下配置项:
[mysqld]
server-id=2
确保 server-id 不同于主服务器。
2. 重启 MySQL 服务
重启 MySQL 服务:
sudo systemctl restart mysqld
3. 配置主从复制
登录到 MySQL 控制台,并执行以下命令:
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.XXXXXX',
MASTER_LOG_POS=XXX;
替换 master_ip、repl_user、password、mysql-bin.XXXXXX 和 XXX 为主服务器的IP地址、复制账号、密码、主服务器的二进制日志文件名和位置。
4. 启动复制
启动从服务器上的复制:
START SLAVE;
检查复制状态
在从服务器上执行以下命令来检查复制状态:
SHOW SLAVE STATUS\G
确保 Slave_IO_Running 和 Slave_SQL_Running 状态都为 Yes。
以上是在 CentOS 上配置 MySQL 主从复制的基本步骤。根据实际情况,可能需要进一步的配置和优化。