zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Windowsmysql双向同步设置方法详细篇

同步方法 设置 详细 双向
2023-06-13 09:14:28 时间

1.1        环境搭建

准备两台WindowsNT主机,分别安装好iKEYServerwindows版本,确定版本无误,确保mysql服务正常启动,确保两台主机处于同一个局域网中,确定好哪台做为主、备机器,假设A为主机,B为备机,假设A主机IP地址为:192.168.1.101B主机IP地址为192.168.1.102

1.2        创建同步帐户

分别在AB节点上登陆mysql数据库,创建同步帐户并赋予同步权限,如下:

A节点操作:

运行cmd,cd进入iKEY版本安装目录下的iKEY\mysql\bin下,然后执行mysql?uroot?p123456登陆mysql数据库执行:

mysql>GRANTREPLICATIONSLAVEON*.*TO"yw[j1] "@"192.168.1.10[j2] 2"IDENTIFIEDBY"ym[j3] ";

mysql>flushprivileges;

B节点操作步骤如上,权限赋予如下:

mysql>GRANTREPLICATIONSLAVEON*.*TO"yw[j4] "@"192.168.1.10[j5] 1"IDENTIFIEDBY"ym[j6] ";

mysql>flushprivileges;

执行以上操作后,运行netstopmysql,分别停止两节点数据库.

1.3        配置数据同步选项

1.3.1   A主机操作

安装好的iKEYServerwindows版本后,会在安装目录下的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 #主机BIP地址
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主机操作

安装好的iKEYServerwindows版本后,会在安装目录下的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数据库,运行netstartmysql,

查看同步配置情况,登陆mysql数据库。

A节点上查看Master信息:

mysql>showmasterstatus;

+------------------+----------+------------------+------------------+

|File            |Position|Binlog_Do_DB    |Binlog_Ignore_DB|

+------------------+----------+------------------+------------------+

|mysql-bin.000001|      98|ikey_db,ikey_log|                 |

+------------------+----------+------------------+------------------+

1rowinset(0.00sec)

B节点上查看Slave信息:

mysql>showslavestatus\G;

***************************1.row***************************

            Slave_IO_State:Waitingformastertosendevent

               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之前,我们先做如下操作:

分别在AB节点上执行mysql>stopslave;停止当前同步状态。

假如此时A节点IP改为192.168.1.103,需要做如下操作:

1.4.1 A节点:

mysql>showmasterstatus;

+------------------+----------+------------------+------------------+

|File            |Position|Binlog_Do_DB    |Binlog_Ignore_DB|

+------------------+----------+------------------+------------------+

|mysql-bin.000002|      118|ikey_db,ikey_log|                 |

+------------------+----------+------------------+------------------+

1rowinset(0.00sec)

1.4.2 B节点:

更改B--àA方向同步的帐户权限

mysql>showgrantsforym@192.168.1.101(A节点IP)

查看到原赋予从192.168.1.101连接的权限,此时我们删除此同步帐户,并重新赋予192.168.1.103连接的权限,如下:

mysql>dropuserym@192.168.1.101;

mysql>flushprivileges;

mysql>grantreplicationslaveon*.*toym@192.168.1.103identifiedby"ym";

mysql>flushprivileges;

然后修改A-àB方向同步配置项:

mysql>CHANGEMASTERTO

   ->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节点数据库要复制的日志文件位置。

QueryOK,0rowsaffected(0.02sec)

同时需要查看此时B节点的Master信息,同步LOG日志及POS位置

mysql>showmasterstatus;

+------------------+----------+------------------+------------------+

|File            |Position|Binlog_Do_DB    |Binlog_Ignore_DB|

+------------------+----------+------------------+------------------+

|mysql-bin.000003|      98|ikey_db,ikey_log|                 |

+------------------+----------+------------------+------------------+

1rowinset(0.00sec)

 

同时请修改B节点mysql主配置文件中

master-host=192.168.1.103 #主机AIP地址

1.4.3 接着A节点:

修改B-àA方向同步配置项:

mysql>CHANGEMASTERTO

->MASTER_LOG_FILE="mysql-bin.000003", #刚才我们记录B节点数据库要执行复制的日志文件。

   ->MASTER_LOG_POS=98;  #刚才记录的B节点数据库要复制的日志文件位置。

QueryOK,0rowsaffected(0.02sec)

 

然后针对AB节点启动同步状态,分别运行startslave;然后查看同步状态,确保在每台机器上查看showslavestatus;得出

          Slave_IO_Running:Yes

         Slave_SQL_Running:Yes

即处于正常同步状态。

 

以上是针对单节点IP修改所做的操作,如果AB节点IP都需要修改,参考以上配置进行操作,最好先针对单个节点IP进行修改,并确保单向同步没有问题后,再进行第二个节点IP修改以及配置。

 [j1]执行同步权限的用户

 [j2]主机BIP地址

 [j3]同步帐户密码

 [j4]执行同步权限的用户

 [j5]主机AIP地址

 [j6]同步帐户密码