MySQL复制中较常见的复制架构有“一主一从”、“一主多从”、“双主”、“多级复制”和“多主环形机构”等,今天我们来详细探讨下MariaDB配置双主复制的方案

本文环境

Debian 8

MariaDB 10.1.21

配置文件 1

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

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

[mysqld]
server-id= 1log_bin= /var/log/mysql/mariadb-binlog_bin_index= /var/log/mysql/mariadb-bin.indexbinlog-do-db= tudou1 #需要同步的数据库,这里同步tudou1和tudou2两个数据库binlog-do-db= tudou2binlog-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= 2log_bin= /var/log/mysql/mariadb-binlog_bin_index= /var/log/mysql/mariadb-bin.indexbinlog-do-db= tudou1 #需要同步的数据库,这里同步tudou1和tudou2两个数据库binlog-do-db= tudou2binlog-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 表示忽略同步的数据库

创建同步账户

// 服务器 1GRANT 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)

设置同步

// 服务器 2MariaDB [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;// 服务器 1MariaDB [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: YesSlave_SQL_Running: Yes

双主同步测试

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

最新资讯
“iPhone 12”延续iPhone 11的设计,但更高更薄

“iPhone 12”延续iPh

据外媒报道,近日有传闻显示,苹果公司的2020年新款iPhone
腾讯取消节后逗利是活动:马化腾今年不当面发红包

腾讯取消节后逗利是活

据腾讯公司旗下微信公众号腾讯行政消息,腾讯取消了初八
2019年AMOLED面板出货量京东方全球第二

2019年AMOLED面板出货

显示及半导体行业第三方机构CINNO Research发布的报告
SK电讯计划上半年推出全球首个5G SA服务

SK电讯计划上半年推出

SK电讯(SK Telecom)周一宣布,它已经成功地在其多供应商商
直播带货成“后浪” 第一批电商网红已在沙滩上?

直播带货成“后浪”

如果还同几年前一样,仅靠光鲜亮丽的人设和修好的图片就
多家旅游平台及航司针对疫情推出保障措施

多家旅游平台及航司针

针对此次疫情,国内各大旅游平台及多家航司推出了相关保
最新文章
Windows10系统下安装MariaDB 的教程图解

Windows10系统下安装M

MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发
Exchange在接收连接器上启用匿名中继的方法

Exchange在接收连接器

这篇文章主要介绍了Exchange在接收连接器上启用匿名中
我是如何用2个Unix命令给MariaDB SQL提速的

我是如何用2个Unix命

我试图在 MariaDB(MySQL)上运行一个简单的连接查询,但性
Window7安装MariaDB数据库及系统初始化操作分析

Window7安装MariaDB数

这篇文章主要介绍了Window7安装MariaDB数据库及系统初
Windows Server 2016 服务器配置指南 之 MariaDB数据库环境搭建方法

Windows Server 2016

这篇文章主要介绍了Windows Server 2016 服务器配置指
CentOS 7中成功安装MariaDB的方法教程

CentOS 7中成功安装Ma

这篇文章主要给大家介绍了CentOS 7中成功安装MariaDB