windows下mysql双向同步备份实现方法
            (编辑:jimmy 日期: 2025/11/4 浏览:2)
         
        1.1 环境搭建 
准备两台Windows NT 主机,分别安装好iKEY Server windows 版本,确定版本无误,确保mysql服务正常启动,确保两台主机处于同一个局域网中,确定好哪台做为主、备机器,假设A为主机,B为备机,假设A主机IP地址为:192.168.1.101,B主机IP地址为192.168.1.102 
1.2 创建同步帐户 
分别在A、B节点上登陆mysql 数据库,创建同步帐户并赋予同步权限,如下: 
A节点操作: 
运行cmd, cd进入iKEY版本安装目录下的iKEY\mysql\bin下,然后执行mysql –uroot –p123456 登陆mysql数据库执行: 
mysql>GRANT REPLICATION SLAVE ON *.* TO "yw[j1] "@"192.168.1.10[j2] 2" IDENTIFIED BY 'ym[j3] '; 
mysql>flush privileges; 
B节点操作步骤如上,权限赋予如下: 
mysql>GRANT REPLICATION SLAVE ON *.* TO "yw[j4] "@"192.168.1.10[j5] 1" IDENTIFIED BY 'ym[j6] '; 
mysql>flush privileges; 
执行以上操作后,运行net stop mysql, 分别停止两节点数据库. 
1.3 配置数据同步选项 
1.3.1 A主机操作 
安装好的iKEY Server windows 版本后,会在安装目录下的iKEY\mysql\backup文件夹下生成一个my_master.cnf配置文件,在A主机上将my_master.cnf 文件复制到安装目录下的iKEY\mysql\bin文件夹下,并重命名为my.cnf,重命名之前请先备份原有my.cnf文件,以下介绍my.cnf做的修改之处: 
log-bin=mysql-bin #同步事件的日志记录文件 
binlog-do-db=ikey_db #提供数据同步服务的数据库日志 
binlog-do-db=ikey_log #提供数据同步服务的数据库日志 
server-id=1 
master-host=192.168.1.102 #主机B的IP地址 
master-user=ym #同步帐户 
master-password=ym #同步帐户密码 
master-port=3306 #端口,主机的MYSQL端口 
master-connect-retry=60 #重试间隔60秒 
replicate-do-db=ikey_db #同步的数据库 
replicate-do-db=ikey_log #同步的数据库 
1.3.2 B主机操作 
安装好的iKEY Server windows 版本后,会在安装目录下的iKEY\mysql\backup文件夹下生成一个my_slave.cnf配置文件,在B备机上将my_slave.cnf 文件复制到安装目录下的iKEY\mysql\bin文件夹下,并重命名为my.cnf,重命名之前请先备份原有my.cnf文件,修改之处同A主机,不同配置在于以下: 
server-id=2 
master-host=192.168.1.101 #主机A的地址 
以上需要注意的地方是,要定义master-host的主机IP地址,请根据实际情况进行修改。 
请确保以上同步用户、主机IP、和同步帐户密码与所设配置相同. 
1.3.3 验证数据同步 
当以上配置完毕后,分别重新启动主机A和备机B数据库,运行net start mysql, 
查看同步配置情况,登陆mysql 数据库。 
在A节点上查看Master 信息: 
mysql> show master status; 
+------------------+----------+------------------+------------------+ 
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+------------------+----------+------------------+------------------+ 
| mysql-bin.000001 | 98 | ikey_db,ikey_log | | 
+------------------+----------+------------------+------------------+ 
1 row in set (0.00 sec) 
在B节点上查看Slave信息: 
mysql> show slave status\G; 
*************************** 1. row *************************** 
Slave_IO_State: Waiting for master to send event 
Master_Host: 192.168.1.101 
Master_User: ym 
Master_Port: 3306 
Connect_Retry: 60 
Master_Log_File: mysql-bin.000001 
Read_Master_Log_Pos: 98 
Relay_Log_File: testBBB-relay-bin.000002 
Relay_Log_Pos: 235 
Relay_Master_Log_File: mysql-bin.000001 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 
Replicate_Do_DB: ikey_db,ikey_log 
通过在B节点上查看同步状态,我们可以清楚的看到所设置的同步配置信息以及当前同步状态。 
同样可以在B节点上查看master 信息以及在A节点上查看slave 信息。 
添加数据在A主机上,同时测试B备机上数据是否同步,以及反向测试。 
1.4 同步维护 
当需要更改节点IP 时,Mysql 同步配置也需要进行相应修改,在更改节点IP之前,我们先做如下操作: 
分别在A、B节点上执行mysql> stop slave; 停止当前同步状态。 
假如此时A 节点IP 改为192.168.1.103,需要做如下操作: 
1.4.1 A节点: 
mysql> show master status; 
+------------------+----------+------------------+------------------+ 
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+------------------+----------+------------------+------------------+ 
| mysql-bin.000002 | 118 | ikey_db,ikey_log | | 
+------------------+----------+------------------+------------------+ 
1 row in set (0.00 sec) 
1.4.2 B节点: 
更改B--àA方向同步的帐户权限 
mysql>show grants for ym@192.168.1.101(原A节点IP); 
查看到原赋予从192.168.1.101 连接的权限,此时我们删除此同步帐户,并重新赋予192.168.1.103 连接的权限,如下: 
mysql>drop user ym@192.168.1.101; 
mysql>flush privileges; 
mysql>grant replication slave on *.* to ym@192.168.1.103 identified by 'ym'; 
mysql>flush privileges; 
然后修改A-àB方向同步配置项: 
mysql>CHANGE MASTER TO 
-> MASTER_HOST='192.168.1.103', # Master服务器地址 
-> MASTER_USER='ym', 
->MASTER_PASSWORD='ym', -> ->MASTER_LOG_FILE='mysql-bin.000002', # 刚才我们记录A节点数据库要执行复制的日志文件。 
-> MASTER_LOG_POS=118; #刚才记录的A节点数据库要复制的日志文件位置。 
Query OK, 0 rows affected (0.02 sec) 
同时需要查看此时B节点的Master信息,同步LOG日志及POS位置 
mysql> show master status; 
+------------------+----------+------------------+------------------+ 
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+------------------+----------+------------------+------------------+ 
| mysql-bin.000003 | 98 | ikey_db,ikey_log | | 
+------------------+----------+------------------+------------------+ 
1 row in set (0.00 sec) 
同时请修改B节点mysql主配置文件中 
master-host=192.168.1.103 #主机A的IP地址 
1.4.3 接着A节点: 
修改B-àA方向同步配置项: 
mysql>CHANGE MASTER TO 
->MASTER_LOG_FILE='mysql-bin.000003', # 刚才我们记录B节点数据库要执行复制的日志文件。 
-> MASTER_LOG_POS=98; #刚才记录的B节点数据库要复制的日志文件位置。 
Query OK, 0 rows affected (0.02 sec) 
然后针对A、B节点启动同步状态,分别运行start slave; 然后查看同步状态,确保在每台机器上查看show slave status;得出 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 
即处于正常同步状态。 
以上是针对单节点IP修改所做的操作,如果A、B节点IP 都需要修改,参考以上配置进行操作,最好先针对单个节点IP 进行修改,并确保单向同步没有问题后,再进行第二个节点IP修改以及配置。 
-------------------------------------------------------------------------------- 
[j1]执行同步权限的用户 
[j2]主机B的IP地址 
[j3]同步帐户密码 
[j4]执行同步权限的用户 
[j5]主机A的IP地址 
[j6]同步帐户密码 
第一步: 
在A数据库的my.ini中添加 
复制代码 代码如下: 
server-id=1 
log-bin=C:\mysqlback #同步事件的日志记录文件 
binlog-do-db=test1 #提供数据同步服务的数据库 
binlog-do-db=test2 #提供数据同步服务的数据库 
binlog-do-db=test3 #提供数据同步服务的数据库 
master-host=192.168.0.102 #主机B的地址 
master-user=use102 #主机B提供应B的用户,该用户中需要包括数据库test1 test12test3的权限 
master-password=usepwd102 #访问密码 
master-port=3306 #端口,主机的MYSQL端口 
master-connect-retry=60 #重试间隔60秒 
replicate-do-db=test1 #同步的数据库 
replicate-do-db=test2 #同步的数据库 
replicate-do-db=test3 #同步的数据库 
 
第二步: 
在B数据库的my.ini中添加 
复制代码 代码如下: 
server-id=2 
log-bin=C:\mysqlback #同步事件的日志记录文件 
binlog-do-db=test1 #提供数据同步服务的数据库 
binlog-do-db=test2 #提供数据同步服务的数据库 
binlog-do-db=test3 #提供数据同步服务的数据库 
master-host=192.168.0.101 #主机B的地址 
master-user=use101 #主机A提供给A的用户,该用户中需要包括数据库test1 test12test3的权限 
master-password=usepwd101 #访问密码 
master-port=3306 #端口,主机的MYSQL端口 
master-connect-retry=60 #重试间隔60秒 
replicate-do-db=test1 #同步的数据库 
replicate-do-db=test2 #同步的数据库 
replicate-do-db=test3 #同步的数据库 
 
第三步: 
将A的mysql数据的权限给B 
mysql>GRANT FILE ON *.* TO 'use101'@'192.168.0.102'IDENTIFIEDBY 'pwd101'; 
将B的Mysql数据的权限给B操作同上。 
第四步: 
重启AB数据库,后: 
B机器: 
mysql>slave start; 
查看同步配置情况 
A机器: 
mysql>show master status\G; 
B机器: 
mysql>show slave status\G; 
假如A与B数据库没有同步,检查mysql安装目录下的.err文件。 
如果slave日志中报错信息如下: 
060807 11:40:17 [ERROR] While trying to obtain the list of slaves from the master 'xxx.xxx.xxx:3306' user 'rep' got the following error: 'Access denied. You need the REPLICATION SLAVE privilegefor this operation'在master上,执行以下语句查看权限: 
mysql>SHOW GRANT FOR 'use101'@'192.168.0.102'\G *************************** 1. row *************************** Grants for rep@192.168.0.102: GRANT Select REPLICATION SLAVE ON *.* TO 'rep'@'192.168.0.102'IDENTIFIED BY PASSWORD 'xxx'已经授予了 REPLICAION SLAVE 权限了,怎么还会报这个错呢? 
通过查看手册和源码,才知道slave需要执行一个语句来更新slave列表: 
SHOW SLAVE HOSTS;而执行这个语句则需要 REPLICAITON CLIENT 权限,因此才会报错。因此,只要重新给 帐号加上 REPLICATION CLIENT 权限就可以了。 
grant selectreplication slaveREPLICAION CLIENT on *.* to 'use101'@'192.168.0.102'identified by 'pwd101';
 
        
    
    荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?