MariaDB配置双主复制方案

 更新时间:2017年03月12日 10:14:34   作者:pupboss  
MySQL复制中较常见的复制架构有“一主一从”、“一主多从”、“双主”、“多级复制”和“多主环形机构”等,今天我们来详细探讨下MariaDB配置双主复制的方案
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

本文环境

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 会不会出现,按照上面教程,如果没问题的话,就是可以同步的。

相关文章

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

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

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

    MariaDB的安装与配置教程

    MariaDB是MySQL的一个分支,由开源社区维护,采用GPL授权许可,完全兼容MySQL,这篇文章主要介绍了MariaDB的安装与配置,需要的朋友可以参考下
    2022-06-06
  • MariaDB 数据类型详细说明

    MariaDB 数据类型详细说明

    这篇文章主要介绍了MariaDB 数据类型详细说明,需要的朋友可以参考下
    2023-05-05
  • centos中找回MariaDB数据库root用户权限的方法

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

    这篇文章主要介绍了centos中找回MariaDB数据库root用户权限的方法,本文写的很意思,相信大家会眼前一亮,需要的朋友可以参考下
    2014-07-07
  • MongoDB启动报错 28663 Cannot start server

    MongoDB启动报错 28663 Cannot start server

    今天学习mongoDB的时候,启动总是失败,搜了好久找到这个文档解决了问题,是引擎的问题,需要的朋友可以参考下
    2020-02-02
  • CentOS安装和设置MariaDB的教程

    CentOS安装和设置MariaDB的教程

    这篇文章主要介绍了CentOS安装和设置MariaDB的教程的相关资料,需要的朋友可以参考下
    2015-09-09
  • Linux安装MariaDB数据库的实例详解

    Linux安装MariaDB数据库的实例详解

    这篇文章主要介绍了Linux安装MariaDB数据库的实例详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 关于mongoose连接mongodb重复访问报错的解决办法

    关于mongoose连接mongodb重复访问报错的解决办法

    这篇文章主要介绍了关于mongoose连接mongodb重复访问报错的解决办法的相关资料,需要的朋友可以参考下
    2016-01-01
  • MongoDB快速入门笔记(八)之MongoDB的java驱动操作代码讲解

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

    这篇文章主要介绍了MongoDB快速入门笔记(八)之MongoDB的java驱动操作代码讲解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • 浅谈MySQL和mariadb区别

    浅谈MySQL和mariadb区别

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

最新评论

?


http://www.vxiaotou.com