MariaDB配置双主复制方案

 更新时间:2017年03月12日 10:14:34   作者:pupboss  
MySQL复制中较常见的复制架构有“一主一从”、“一主多从”、“双主”、“多级复制”和“多主环形机构”等,今天我们来详细探讨下MariaDB配置双主复制的方案

本文环境

Debian 8

MariaDB 10.1.21

配置文件 1

修改服务器 1 上 mysql 配置文件 /etc/mysql/my.cnf

有些配置默认就存在的,如果你有洁癖,请先搜索,再添加配置项。

[mysqld]
server-id        = 1 
log_bin         = /var/log/mysql/mariadb-bin 
log_bin_index      = /var/log/mysql/mariadb-bin.index 
binlog-do-db        = tudou1 #需要同步的数据库,这里同步tudou1和tudou2两个数据库 
binlog-do-db        = tudou2 
binlog-ignore-db     = mysql #忽略同步的数据库 
log_slave_updates               #把从库的写操作记录到binlog中 (缺少之后,双主创建失败) 
expire_logs_days  = 365         #日志文件过期天数,默认是 0,表示不过期 
auto_increment_increment= 2       #设定为主服务器的数量,防止auto_increment字段重复 
auto_increment_offset  = 1       #自增长字段的初始值,在多台master环境下,不会出现自增长ID重复

配置文件 2

[mysqld]
[mysqld]
server-id        = 2 
log_bin         = /var/log/mysql/mariadb-bin 
log_bin_index      = /var/log/mysql/mariadb-bin.index 
binlog-do-db      = tudou1 #需要同步的数据库,这里同步tudou1和tudou2两个数据库 
binlog-do-db      = tudou2 
binlog-ignore-db     = mysql #忽略同步的数据库 
log_slave_updates               #把从库的写操作记录到binlog中 (缺少之后,双主创建失败) 
expire_logs_days  = 365         #日志文件过期天数,默认是 0,表示不过期 
auto_increment_increment= 2       #设定为主服务器的数量,防止auto_increment字段重复 
auto_increment_offset  = 2       #自增长字段的初始值,在多台master环境下,不会出现自增长ID重复

注意:

log slave updates 表示把从库的写操作记录到binlog中,缺少之后,双主创建失败。双主同步时该项必须有

binlog-do-db 需要同步的数据库,可写多个

binlog-ignore-db 表示忽略同步的数据库

创建同步账户

// 服务器 1

GRANT REPLICATION SLAVE ON *.* TO 'repuser'@'server-2' IDENTIFIED BY 'repuser'; 
FLUSH PRIVILEGES;

// 服务器 2
GRANT REPLICATION SLAVE ON *.* TO 'repuser'@'server-1' IDENTIFIED BY 'repuser'; 
FLUSH PRIVILEGES;

可以顺便在另一台服务器测试能不能登录,如果不能,把 bind-address 那行注释掉即可。

$ mysql -urepuser -prepuser -hserver-1

查看 master 状态

服务器 1 中

MariaDB [mysql]> show master status; 
+--------------------+----------+--------------+------------------+
| File        | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000514 |   639 | xxxxxxxx   | mysql      |
+--------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

服务器 2 中

MariaDB [mysql]> show master status; 
+--------------------+----------+--------------+------------------+
| File        | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000006 |   1057 | xxxxxxxx   | mysql      |
+--------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

设置同步

// 服务器 2

MariaDB [mysql]> CHANGE MASTER TO MASTER_HOST='server-1',MASTER_PORT=3306,MASTER_USER='repuser',MASTER_PASSWORD='repuser',MASTER_LOG_FILE='mariadb-bin.000514',MASTER_LOG_POS=639;

MariaDB [mysql]> START SLAVE;

// 服务器 1

MariaDB [mysql]> CHANGE MASTER TO MASTER_HOST='server-2',MASTER_PORT=3306,MASTER_USER='repuser',MASTER_PASSWORD='repuser',MASTER_LOG_FILE='mariadb-bin.000006',MASTER_LOG_POS=1057;

MariaDB [mysql]> START SLAVE;

// 完毕之后,分别执行

MariaDB [mysql]> SHOW SLAVE STATUS\G

如出现以下两项,则说明配置成功!

Slave_IO_Running: Yes
      Slave_SQL_Running: Yes


双主同步测试

在服务器 1 数据库中创建一个表,看看服务器 2 会不会出现,按照上面教程,如果没问题的话,就是可以同步的。

相关文章

  • centos中找回MariaDB数据库root用户权限的方法

    centos中找回MariaDB数据库root用户权限的方法

    这篇文章主要介绍了centos中找回MariaDB数据库root用户权限的方法,本文写的很意思,相信大家会眼前一亮,需要的朋友可以参考下
    2014-07-07
  • CentOS 7中成功安装MariaDB的方法教程

    CentOS 7中成功安装MariaDB的方法教程

    这篇文章主要给大家介绍了CentOS 7中成功安装MariaDB的方法教程,文中通过图文介绍的非常详细,对大家具有一定的参考价值,需要的朋友们可以参考学习,下面来一起学习学习吧。
    2017-04-04
  • MariaDB数据库的外键约束实例详解

    MariaDB数据库的外键约束实例详解

    约束保证了数据的完整性和一致性。下面这篇文章主要给大家介绍了关于MariaDB数据库的外键约束的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-09-09
  • 浅谈MySQL和mariadb区别

    浅谈MySQL和mariadb区别

    MariaDB是MySQL源代码的一个分支,在意识到Oracle会对MySQL许可做什么后分离了出来(MySQL先后被Sun、Oracle收购)。除了作为一个Mysql的“向下替代品”,MariaDB包括的一些新特性使它优于MySQL。通过本篇文章给大家介绍MySQL和mariadb区别,需要的朋友可以参考下
    2015-09-09
  • Windows10系统下安装MariaDB 的教程图解

    Windows10系统下安装MariaDB 的教程图解

    MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。这篇文章给大家介绍Windows10系统下安装MariaDB 的教程图解,感兴趣的朋友一起看看吧
    2018-12-12
  • debian10 mariadb安装过程详解

    debian10 mariadb安装过程详解

    这篇文章主要介绍了debian10 mariadb安装过程详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • MongoDB快速入门笔记(八)之MongoDB的java驱动操作代码讲解

    MongoDB快速入门笔记(八)之MongoDB的java驱动操作代码讲解

    这篇文章主要介绍了MongoDB快速入门笔记(八)之MongoDB的java驱动操作代码讲解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • Exchange在接收连接器上启用匿名中继的方法

    Exchange在接收连接器上启用匿名中继的方法

    这篇文章主要介绍了Exchange在接收连接器上启用匿名中继的方法,需要的朋友可以参考下
    2018-08-08
  • MongoDB启动报错 28663 Cannot start server

    MongoDB启动报错 28663 Cannot start server

    今天学习mongoDB的时候,启动总是失败,搜了好久找到这个文档解决了问题,是引擎的问题,需要的朋友可以参考下
    2020-02-02
  • MySQL分支选择参考:Percona还是MariaDB

    MySQL分支选择参考:Percona还是MariaDB

    这篇文章主要介绍了MySQL分支选择参考:Percona还是MariaDB,本文分别讲解了Percona、MariaDB背景知识,对使用它们的选择给出了参考,需要的朋友可以参考下
    2015-03-03

最新评论