总结MySQL主主同步配置方法

  • 时间:
  • 8759人关注

创建同步用户、修改 /etc/my.cnf 配置文件,为其添加以下内容、分别重启服务器ODD EVEN 上的mysql服务,另外这篇文章主要知识点是关于MySQL、主主同步、MySQL的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

教程详情电子资料
  • 教程类别:MySQL
  • 编辑整理:那高明
  • 教程字数:4056字节
  • 阅读时间:大概10分钟
  • 下载本教程(DOC版)
  • MySQL是怎样运行的:从根儿上理解 MySQL
  • Centos7下安装mysql5.7的步骤
  • 高性能MySQL
  • MySQL8从入门到精通
  • MySQL8 Cookbook(中文版)
  • MySQL 主主同步配置
    服务器名 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上
     

    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 上
     

    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 上
     

    [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 上
     

    [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
     

    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
     

    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
     

    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
     

    mysql> change master to master_host='192.168.1.116',master_user='water',master_password='cdio2010',
    -> master_log_file='mysql-bin.000007',master_log_pos=438;
    Query OK, 0 rows affected (0.15 sec)

    注:master_log_file,master_log_pos由上面主服务器查出的状态值中确定
    master_log_file对应File,master_log_pos对应Position
    在ODD EVEN上
     

    mysql> unlock tables;
    Query OK, 0 rows affected (0.00 sec)

    ㈥ 分别在服务器ODD、EVEN上启动从服务器线程
     

    mysql> start slave;
    Query OK, 0 rows affected (0.00 sec)

    分别在服务器ODD、EVEN上查看从服务器状态 :
     

    ODD上
    mysql> show slave status\G;
    *************************** 1. row ***************************
    主要关注以下 2 个参数:
    ...
    ...
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    ...
    ...
    EVEN上:
    mysql> show slave status\G;
    *************************** 1. row ***************************
    主要关注以下 2 个参数:
    ...
    ...
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    ...
    ...

    ㈦ 测试
     

    EVEN 上
    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | db_rocky |
    | mysql |
    | performance_schema |
    | test |
    +--------------------+
    5 rows in set (0.00 sec)
    mysql> use db_rocky;
    Database changed
    mysql> show tables;
    Empty set (0.00 sec)
    mysql> create table water (id int);
    Query OK, 0 rows affected (0.04 sec)
    mysql> insert into water values(1);
    Query OK, 1 row affected (0.01 sec)
    mysql> commit;
    Query OK, 0 rows affected (0.00 sec)
    在 ODD 上
    mysql> show tables;
    +--------------------+
    | Tables_in_db_rocky |
    +--------------------+
    | t_rocky |
    | water |
    +--------------------+
    2 rows in set (0.00 sec)
    mysql> select * from water;
    +------+
    | id |
    +------+
    | 1 |
    +------+
    1 row in set (0.00 sec)

    上一篇:mysql存储过程实现循环插入100条记录

    下一篇:MySQL性能优化技巧

    相关内容

    • Python使用pycharm导入pymysql教程

      这篇文章主要介绍了Python使用pycharm导入pymysql教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

      04-19Python pycharm导入pymysql

      阅读更多
    • 如何解决JDBC连接Mysql 8.0.11出现的各种问题

      这篇文章主要介绍了使用JDBC连接Mysql 8.0.11出现了各种错误的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学

      01-16使用JDBC连接Mysql 8.0.11出现了各种错误的解决

      阅读更多
    • 示例讲解php+mysql查询实现无限下级分类树输出

      这篇文章主要介绍了php+mysql查询实现无限下级分类树输出,结合实例形式分析了php+MySQL查询实现的树状分类输出功能,涉及php数据库查询与数组遍历等相关操作技巧,需要的朋友可以参考下

      02-14php+mysql查询实现无限下级分类树输出示例

      阅读更多
    • JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql

      这篇文章主要给大家介绍了关于JDBC中如何使用Java8的日期LocalDate和LocalDateTime的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下

      07-08JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql

      阅读更多
    • mysql服务1067错误多种解决方案汇总

      今天我的mysql服务器突然出来了1067错误提示,无法正常启动了,我今天从网上找寻了大量的解决mysql服务1067错误的办法,有需要的朋友可以看看

      01-29mysql服务1067错误多种解决方案分享

      阅读更多
    • MySQL从入门到项目实践

      MySQL从入门到项目实践

      MySQL从入门到项目实践 (超值版)采用基本知识关键运用关键技术高級运用应用领域新项目实践活动构造和循序渐进,由深到精的学习方式开展解读。本书分成6篇29章。最先解读MySQL的安裝与配备

      大小:314.8 MBMySQL

      点击下载
    • MySQL8从入门到精通

      MySQL8从入门到精通

      大小:88592 MB MMySQL8

      点击下载
    • PHP和MySQL Web开发(第4版)

      PHP和MySQL Web开发(第4版)

      《PHP和MySQL Web开发》将PHP开发与MySQL应用相结合,分别对PHP和MySQL做了深入浅出的分析,不仅介绍PHP和MySQL的一般概念,而且对PHP和MySQL的Web应用做了较全面的阐述,并包括几个经典且实用的例子

      大小:51.6 MB网站开发

      点击下载
    • 高性能MySQL

      高性能MySQL

      大小:392 MBMySQL

      点击下载
    • PHP7.0+MySQL网站开发全程实例

      PHP7.0+MySQL网站开发全程实例

      《 PHP7.0MySQL网站开发全程实例 》在XAMPP集成化自然环境下,应用Dreamweaver对PHP动态网站开发。《PHP7.0MySQL网站开发全程实例》以全程实例课堂教学为设计方案总体目标,从网站开发自然环境的配

      大小:165.8 MB网站设计

      点击下载
    • 深入理解MariaDB与MySQL

      深入理解MariaDB与MySQL

      深入理解MariaDB与MySQL 讲解了MariaDB的诞生背景及设计目的,并通过与MySQL的比较使读者轻松理解MariaDB。本书内容涉及MariaDB 5.1~10.0的各个方面,讲解重点在于MariaDB 10.0的各种实用功能。此外,M

      大小:75.3 MBMariaDB

      点击下载
    • MySQL DBA修炼之道

      MySQL DBA修炼之道

      MySQL DBA修炼之道 以实战讲解为主,摒弃了生产实践中不常用的知识和技术。书中内容主要分为5部分。第壹部分介绍MySQL的应用领域和适用场景、基础架构、常见生产环境部署方式,以及MySQL安

      大小:4.9 MBMySQL

      点击下载
    • PHP与MySQL高性能应用开发

      PHP与MySQL高性能应用开发

      PHP与MySQL高性能应用开发书中不仅讲解了OOP、设计模式,也讲解了如何进行性能优化和调试。甚至,还对于语言之外的代码重构进行了讲解,本书面向的对象是有一定PHP基础,但是又想深入学习的PHP开发者,欢迎免费下载

      大小:60.5 MBPHP开发

      点击下载

    学习笔记