行业资讯 Centos7怎么配置Mysql多主一从

Centos7怎么配置Mysql多主一从

148
 

CentOS 7怎么配置MySQL多主一从

在大规模的应用中,数据的高可用性和冗余备份是至关重要的。MySQL多主一从(Master-Master Replication)是一种常见的数据库高可用性架构,它可以确保数据库的可用性并提供冗余备份。本文将介绍在CentOS 7上如何配置MySQL多主一从复制。

1. 确保已安装MySQL

首先,确保您的CentOS 7服务器上已经安装了MySQL数据库。如果尚未安装,可以使用以下命令安装:

sudo yum install mysql-server

然后,启动MySQL并设置其随系统启动:

sudo systemctl start mysqld
sudo systemctl enable mysqld

2. 配置主服务器

主服务器1

在两个主服务器上(Master 1和Master 2),打开MySQL配置文件以允许主复制:

sudo nano /etc/my.cnf

添加以下配置:

server-id=1
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=test
replicate-ignore-db=mysql
replicate-ignore-db=test
auto-increment-increment = 2
auto-increment-offset = 1

主服务器2

在第二个主服务器上,配置与主服务器1类似,但server-id设置为2。确保auto-increment-offset与主服务器1不同。

保存配置文件并重新启动MySQL:

sudo systemctl restart mysqld

3. 创建复制用户

为了使从服务器能够连接到主服务器,您需要在主服务器上创建一个复制用户并授予相应的权限。

登录到MySQL:

mysql -u root -p

然后,执行以下SQL命令以创建复制用户。请将your_replication_useryour_password替换为您选择的用户名和密码。

CREATE USER 'your_replication_user'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'your_replication_user'@'%';
FLUSH PRIVILEGES;

4. 配置从服务器

在从服务器上,打开MySQL配置文件并添加以下配置。将server-id设置为3(确保不与主服务器的server-id冲突):

sudo nano /etc/my.cnf
server-id=3
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=test
replicate-ignore-db=mysql
replicate-ignore-db=test
auto-increment-increment = 2
auto-increment-offset = 2

保存并关闭配置文件。然后,重启MySQL:

sudo systemctl restart mysqld

5. 启动复制

在从服务器上,执行以下SQL命令以启动复制。请将master1_ipmaster2_ip替换为您的两个主服务器的IP地址。

CHANGE MASTER TO MASTER_HOST='master1_ip', MASTER_PORT=3306, MASTER_USER='your_replication_user', MASTER_PASSWORD='your_password', MASTER_AUTO_POSITION=1;
START SLAVE;

然后,连接到其中一个主服务器并创建一些测试数据。您将会发现这些数据在从服务器上也同步了。

6. 检查复制状态

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

SHOW SLAVE STATUS\G

确保Slave_IO_RunningSlave_SQL_Running都显示为Yes,这表示复制正在运行。

结论

通过按照以上步骤配置多主一从复制,您可以在CentOS 7上实现MySQL数据库的高可用性和冗余备份。这种配置允许数据在多个主服务器之间同步,提供了一种可靠的数据库解决方案,以确保系统的稳定性和数据的完整性。

更新:2023-09-07 00:00:12 © 著作权归作者所有
QQ
微信