如何在MySQL中设置双机热备份以提高数据安全性?

MySQL双机热备份实验旨在实现数据库高可用性,通过主从复制确保数据实时同步,提升系统容错与恢复能力。

如何在MySQL中设置双机热备份以提高数据安全性?

在现代数据库管理中,数据的安全性和高可用性至关重要,MySQL作为广泛使用的关系型数据库管理系统,其双机热备功能为保障数据安全提供了有效手段,本文将详细介绍如何在Windows环境下配置MySQL 8.0.21版本的双机热备,包括实验环境、步骤及常见问题解答。

试验环境

本次试验在VMware虚拟机环境中进行,操作系统为Windows 7,数据库工具软件为Navicat Premium 15,两台安装MySQL的服务器分别为:

服务器A:IP地址为192.168.229.131

服务器B:IP地址为192.168.229.132

需要同步的数据库名为mytest。

试验目的

学习并测试在Windows下MySQL双机热备的可行性。

准备数据库

在两台服务器上分别建立空白数据库mytest:

CREATE DATABASE mytest;

准备账号

在两台服务器上分别建立用于同步的账号syn,并设置相应的权限:

在服务器A上创建账号,指定服务器B的IP地址
CREATE USER 'syn'@'192.168.229.132' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'syn'@'192.168.229.132';
在服务器B上创建账号,指定服务器A的IP地址
CREATE USER 'syn'@'192.168.229.131' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'syn'@'192.168.229.131';

测试账号

从服务器A用服务器B的账号访问服务器B上的数据库:

mysql h 192.168.229.132 u syn p

从服务器B用服务器A的账号访问服务器A上的数据库:

mysql h 192.168.229.131 u syn p

修改配置文件

分别修改服务器A和服务器B的配置文件my.ini,添加以下参数:

服务器A配置

如何在MySQL中设置双机热备份以提高数据安全性?

serverid=1
logbin=backuplog
sync_binlog=1
binlog_format=row
auto_increment_increment = 2
auto_increment_offset = 1
max_binlog_size=512m
expire_logs_days=1
binlog_do_db=mytest
binlog_ignore_db=mysql
binlog_ignore_db=information_schema
replicate_do_db=mytest
replicate_wild_ignore_table=mytest.log
slave_skip_errors=all

服务器B配置

serverid=2
logbin=backuplog
sync_binlog=1
binlog_format=row
auto_increment_increment = 2
auto_increment_offset = 2
max_binlog_size=512m
expire_logs_days=1
binlog_do_db=mytest
binlog_ignore_db=mysql
binlog_ignore_db=information_schema
replicate_do_db=mytest
replicate_wild_ignore_table=mytest.log
slave_skip_errors=all

重启服务器

修改配置文件后,分别重启两台服务器的MySQL服务:

net stop mysql
net start mysql

检查master服务状态

重启完毕后,分别检查服务器上MySQL服务的状态:

SHOW MASTER STATUS\G;

指定同步位置

分别在服务器A和服务器B上用CHANGE MASTER TO命令指定同步位置:

服务器A

STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='192.168.229.132', MASTER_USER='syn', MASTER_PASSWORD='123456', MASTER_LOG_FILE='backuplog.000001', MASTER_LOG_POS=0;
START SLAVE;

服务器B

STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='192.168.229.131', MASTER_USER='syn', MASTER_PASSWORD='123456', MASTER_LOG_FILE='backuplog.000001', MASTER_LOG_POS=0;
START SLAVE;

检查slave服务状态

检查从服务器的状态,确保配置成功:

SHOW SLAVE STATUS\G;

测试

建表测试

在服务器A上创建表created_by_a:

CREATE TABLE created_by_a (id INT PRIMARY KEY, name VARCHAR(50));

插入数据测试

向表中插入数据:

INSERT INTO created_by_a (id, name) VALUES (1, 'Test');

删除数据

删除刚刚插入的数据:

如何在MySQL中设置双机热备份以提高数据安全性?

DELETE FROM created_by_a WHERE id = 1;

更新数据

更新表中的数据:

UPDATE created_by_a SET name = 'Updated Test' WHERE id = 1;

关闭服务器B后测试

关闭服务器B后,继续在服务器A上操作,验证主从同步是否正常。

通过上述步骤,我们成功地在Windows环境下配置了MySQL双机热备,实验证明,MySQL双机热备功能能够有效地保障数据的安全性和高可用性,在实际应用中,可以根据具体需求进行调整和优化。

FAQs(常见问题解答)

Q1: 如何查看MySQL版本?

A1: 你可以通过登录到MySQL终端并执行以下命令来查看版本:

SELECT VERSION();

或者在命令行中直接输入:

mysql version

Q2: 如果从服务器无法连接到主服务器怎么办?

A2: 确保以下几点:

1、网络连接正常:从服务器可以通过ping命令访问主服务器。

2、防火墙设置:确保防火墙没有阻止3306端口的访问。

3、配置文件正确:检查my.ini文件中的配置是否正确,特别是serverid和logbin等参数。