CentOS 上搭建MySQL 主从复制

95 阅读2分钟

在 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_userslave_ippassword 为实际的用户名、从服务器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_iprepl_userpasswordmysql-bin.XXXXXXXXX 为主服务器的IP地址、复制账号、密码、主服务器的二进制日志文件名和位置。

4. 启动复制

启动从服务器上的复制:

START SLAVE;

检查复制状态

在从服务器上执行以下命令来检查复制状态:

SHOW SLAVE STATUS\G

确保 Slave_IO_RunningSlave_SQL_Running 状态都为 Yes

以上是在 CentOS 上配置 MySQL 主从复制的基本步骤。根据实际情况,可能需要进一步的配置和优化。