CentOS MySQL主从复制
简介
MySQL主从复制是一种常用的数据库同步技术,它可以将一个MySQL服务器的数据复制到另一个MySQL服务器上,以实现数据的备份、读写分离等功能。本文将介绍在CentOS操作系统上如何配置MySQL主从复制。
环境准备
在进行主从复制配置之前,需要进行以下环境准备:
-
两台CentOS服务器,分别作为主服务器和从服务器。本文将分别称为Server A和Server B。
-
在两台服务器上安装MySQL数据库。可以使用以下命令安装MySQL:
yum install mysql-server
-
确保两台服务器之间可以相互通信,可以使用以下命令测试网络连通性:
ping <IP地址>
配置主服务器
1. 修改配置文件
打开Server A上的MySQL配置文件/etc/my.cnf
,找到以下配置项并进行修改:
server-id = 1
log_bin = /var/lib/mysql/mysql-bin.log
其中,server-id
用于标识MySQL服务器的唯一ID,可以设置为1或者其他唯一的整数。log_bin
用于开启二进制日志功能,用于记录所有的数据库操作。
2. 重启MySQL服务
保存并关闭配置文件后,使用以下命令重启MySQL服务:
service mysqld restart
3. 创建复制账户
登录MySQL服务器,使用以下命令创建用于复制的账户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
其中,repl
为账户名,password
为密码,可以根据实际情况进行修改。
4. 查看主服务器状态
使用以下命令查看主服务器状态:
SHOW MASTER STATUS;
记录下输出中的File
和Position
字段的值,将在配置从服务器时使用。
配置从服务器
1. 修改配置文件
打开Server B上的MySQL配置文件/etc/my.cnf
,找到以下配置项并进行修改:
server-id = 2
将server-id
设置为2或其他唯一的整数。
2. 重启MySQL服务
保存并关闭配置文件后,使用以下命令重启MySQL服务:
service mysqld restart
3. 配置主从复制
登录MySQL服务器,使用以下命令配置主从复制:
CHANGE MASTER TO
MASTER_HOST='<主服务器IP地址>',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='<主服务器上的File值>',
MASTER_LOG_POS=<主服务器上的Position值>;
START SLAVE;
将<主服务器IP地址>
替换为Server A的IP地址,<主服务器上的File值>
和<主服务器上的Position值>
替换为主服务器上SHOW MASTER STATUS
命令输出的对应值。
4. 查看从服务器状态
使用以下命令查看从服务器状态:
SHOW SLAVE STATUS\G
如果输出中的Slave_IO_Running
和Slave_SQL_Running
字段的值都为Yes
,表示主从复制已经成功配置。
总结
通过以上步骤,我们成功配置了CentOS上的MySQL主从复制。主服务器上的数据将自动复制到从服务器上,以实现数据的备份和读写分离。在实际生产环境中,还可以根据需求进行更详细的配置,如配置多个从服务器、配置复制过滤规则等。
流程图
flowchart TD
A(主服务器) --> B(从服务器)
B --> A
以上是CentOS MySQL主从复制的配置流程。通过合理的配置和管理,可以实现高可用性和灵活的数据库架构。