在现代数据库管理中,数据的安全性和高可用性至关重要,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配置
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');
删除数据
删除刚刚插入的数据:
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等参数。