Heim >Datenbank >MySQL-Tutorial >MySQL主主同步配置

MySQL主主同步配置

WBOY
WBOYOriginal
2016-06-07 15:07:011102Durchsuche

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 实战环境介绍: 服务器名 IP 系统 MySQL odd.example.com 192.168.1.116 rhel-5.8 5.5.16 even.example.com 192.168.1.115 rhel-5.8 5.5.16 假设要同步的库是 db_rocky ㈠ 创建同步用户 在 ODD上 [pl

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

    实战环境介绍:

    服务器名 IP 系统 MySQL

    odd.example.com 192.168.1.116 rhel-5.8 5.5.16

    even.example.com 192.168.1.115 rhel-5.8 5.5.16

    假设要同步的库是 db_rocky

    ㈠ 创建同步用户

    在 ODD上

    [plain]

    mysql> grant replication slave on *.* to 'water'@'192.168.1.115' identified by 'cdio2010';

    Query OK, 0 rows affected (0.00 sec)

    mysql> flush privileges;

    Query OK, 0 rows affected (0.00 sec)

    在 EVEN 上

    [plain]

    mysql> grant replication slave on *.* to 'water'@'192.168.1.116' identified by 'cdio2010';

    Query OK, 0 rows affected (0.11 sec)

    mysql> flush privileges;

    Query OK, 0 rows affected (0.00 sec)

    ㈡ 修改 /etc/my.cnf 配置文件,为其添加以下内容:

    在 ODD 上

    [plain]

    [mysqld]

    binlog-do-db=db_rocky #需要记录进制日志的数据库。如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

    binlog-ignore-db=mysql #不需要记录进制日志的数据库。如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

    replicate-do-db=db_rocky #需要进行同步的数据库。如果有多个数据库可用逗号分隔,或者使用多个replicate-do-db选项

    replicate-ignore-db=mysql,information_schema #不需要同步的数据库。如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项

    #同步参数:

    #保证slave挂在任何一台master上都会接收到另一个master的写入信息

    log-slave-updates

    sync_binlog=1

    auto_increment_offset=1

    auto_increment_increment=2

    slave-skip-errors=all #过滤掉一些没啥大问题的错误

    在 EVEN 上

    [plain]

    [mysqld]

    server-id=2 #设置一个不同的id、注意这里在my.cnf里面有个默认值是 1 、把默认值改掉、而不能新增一个server-id

    binlog-do-db=db_rocky #需要记录二进制日志的数据库。如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

    binlog-ignore-db=mysql #不需要记录进制日志的数据库。如果有多个数据库可用逗号分隔,或者使用多个binlog-ignore-db选项

    #需要同步的数据库

    replicate-do-db=db_rocky #需要进行同步的数据库。如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

    replicate-ignore-db=mysql,information_schema #不需要同步的数据库。如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

    #同步参数:

    #保证slave挂在任何一台master上都会接收到另一个master的写入信息

    log-slave-updates

    sync_binlog=1

    auto_increment_offset=2

    auto_increment_increment=2

    slave-skip-errors=all #过滤掉一些没啥大问题的错误

    ㈢ 分别重启服务器ODD  EVEN 上的mysql服务

    ㈣ 分别在服务器ODD、EVEN 上查看做为主服务器状态

    在ODD

    [plain]

    mysql> flush tables with read lock;#防止进入新的数据

    Query OK, 0 rows affected (0.00 sec)

    mysql> show master status\G;

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

    File: mysql-bin.000007

    Position: 438

    Binlog_Do_DB: db_rocky

    Binlog_Ignore_DB: mysql

    1 row in set (0.00 sec)

    在EVEN

    [plain]

    mysql> flush tables with read lock;

    Query OK, 0 rows affected (0.00 sec)

    mysql> show master status\G;

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

    File: mysql-bin.000008

    Position: 107

    Binlog_Do_DB: db_rocky

    Binlog_Ignore_DB: mysql

    1 row in set (0.01 sec)

    ㈤ 分别在服务器ODD、EVEN上用change master语句指定同步位置 :

    在ODD

    [plain]

    mysql> change master to master_host='192.168.1.115',master_user='water',master_password='cdio2010',

    -> master_log_file='mysql-bin.000008',master_log_pos=107;

    Query OK, 0 rows affected (0.05 sec)

    在EVEN

[1] [2] 

MySQL主主同步配置

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn