• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL 5.7双主同步部分表的实现过程详解

    前言

    最近遇到一个需求,由于公司自身业务,两个数据库之间某些表需要实时双向同步数据,且其中任何一台数据库宕机都不会影响另外一台数据库,这里记录一下自己的技术调研,以便后期重构中使用。下面话不多说了,来一起看看详细的介绍吧。

    安装MySQL5.7

    推荐直接进官网 https://dev.mysql.com 下载yum源的方式安装,毕竟安全又省事。

    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    yum -y install mysql57-community-release-el7-11.noarch.rpm
    yum -y install mysql-server
    # 安装MySQL5.7
    systemctl start mysqld
    # 启动MySQL

    配置双主

    my.cnf配置

    此处只是做了简单的双主的配置,没有做数据库相关方面的优化,如需要优化可以私聊。

    MySQL1的配置如下

    [mysqld]
    vim /etc/my.cnf
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    symbolic-links=0
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    skip_name_resolve=ON
    #设置简单密码
    validate_password_policy=0
    validate_password_length=1
    ###主配置
    log_bin=bin_log
    server-id=1
    binlog-do-db=ziyun
    # 允许从复制的哪一个库
    slave_parallel_type='logical_clock'
    #设置复制类型为 LOGICAL_CLOCK
    slave_parallel_workers=4
    #设置并行数量为 4
    ###从配置
    relay-log=relay-bin
    relay-log-index=relay-bin.index
    replicate-do-db=ziyun
    # 允许复制主服务的库
    replicate-do-table=ziyun.test1
    # 允许复制主服务的库的哪一张表
    replicate-do-table=ziyun.test2

    MySQL2的配置和上面基本一样,只是修改一个server-id=2,其他保持不变即可

    MySQL命令配置

    以下的都在SQL命令行界面配置

    主配置:

    mysql> CREATE USER 'slave'@'192.168.1.100' IDENTIFIED BY '123.com'; 
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.100';
    # 授权复制的用户和密码
    mysql> show master status;
    +-----------------+----------+--------------+------------------+-------------------+
    | File  | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-----------------+----------+--------------+------------------+-------------------+
    | bin_log.000002 | 8384 | ziyun |   |   |
    +-----------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)

    从配置:

    mysql> CHANGE MASTER TO
     -> MASTER_HOST='192.168.1.101',
     -> MASTER_USER='slave',
     -> MASTER_LOG_FILE='bin_log.000002',
     -> MASTER_LOG_POS=8384;
    Query OK, 0 rows affected, 2 warnings (0.01 sec)
    mysql> start slave;
    Query OK, 0 rows affected (0.01 sec)
    mysql> show slave status\G
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
    # 确定以上都为yes,并且无任何报错即可

    在MySQL2上一样配置即可

    双主同步测试

    这里我之前在两边都建了一个ziyun的数据库,并且建了test1 test2 test3表,测试效果如下:

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • MySQL实现两张表数据的同步
    • MySql开发之自动同步表结构
    上一篇:centos6.5中rpm包安装mysql5.7初始化出错的解决方法
    下一篇:linux实现mysql数据库每天自动备份定时备份
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MySQL 5.7双主同步部分表的实现过程详解 MySQL,5.7双,主,同步部,分表,