mysql如何做双机热备

2023-12-13 09:30:08 举报文章

MySQL 是一种常用的关系数据库管理系统,当需要保障数据的高可用性和容错性时,就需要利用其提供的双机热备功能。下面我们一起来了解如何使用 MySQL 实现这一功能。

首先,在两台服务器上分别安装 MySQL,并确保两台服务器上的 MySQL 配置相同。我们需要修改以下配置文件:

--by www.qzphp.cn
# vi /etc/my.cnf
# 在 [mysqld] 段中添加以下内容
server-id=1 # 在 1 号服务器上设置为 1,在 2 号服务器上设置为 2
log-bin=mysql-bin
binlog-do-db=[需要备份的数据库名] 

接着,在两台服务器上创建相同的数据库,并将数据初始化到两台服务器中。这样可以保证两台服务器上的数据库数据是一致的。

然后,我们需要配置 MySQL 的双机热备功能,将数据自动同步到备份服务器上。在 1 号服务器上执行以下命令:

--by www.qzphp.cn
# mysql -uroot -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'2号服务器的IP地址' IDENTIFIED BY '[密码]';
mysql> flush privileges;
mysql> flush tables with read lock;
mysql> SET GLOBAL read_only=ON;
mysql> show master status\G 

其中,slave_user 是在 2 号服务器上用来同步数据的账户,需要在 2 号服务器上创建对应的账户,并将其指向 1 号服务器。

接着,在 2 号服务器上执行以下命令:

--by www.qzphp.cn
# mysql -uroot -p
mysql> change master to master_host='1号服务器的IP地址',master_user='slave_user',master_password='[密码]',master_log_file='[1号服务器上的log文件名]', master_log_pos=[master上的binlog偏移量];
mysql> start slave;
mysql> show slave status\G 

如果显示的状态为“Slave_IO_Running: Yes” 和 “Slave_SQL_Running: Yes”,则表示同步成功。

如果需要在 2 号服务器上进行读操作,则需要先对其进行解锁,输入以下命令:

--by www.qzphp.cn
# mysql -uroot -p
mysql> SET GLOBAL read_only=OFF;
mysql> UNLOCK TABLES;
 

至此,我们已经成功配置了 MySQL 的双机热备功能,保障了数据的高可用性和容错性。

如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!