广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    Windows mysql 双向同步设置方法 详细篇

    2018-09-28 15:14:15 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布

    1.1         环境搭建

    准备两台Windows NT 主机,分别安装好iKEY Server windows 版本,确定版本无误,确保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>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  #
    主机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主机操作

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

    分别在AB节点上执行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  #主机AIP地址

    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)

     

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

               Slave_IO_Running: Yes

              Slave_SQL_Running: Yes

    即处于正常同步状态。

     

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


    cript">

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

    cript">

     [j2]主机BIP地址

    cript">

     [j3]同步帐户密码

    cript">

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

    cript">

     [j5]主机AIP地址

    cript">

     [j6]同步帐户密码

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告