MariaDB配置双主复制方案

发布时间 - 2026-01-11 00:07:36    点击率:

本文环境

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


# mariadb  # 主从复制  # 双主复制  # 主主复制  # centos 7安装mysql5.5和安装 mariadb使用的命令  # CentOS 7中成功安装MariaDB的方法教程  # 在Ubuntu系统中安装MariaDB数据库的教程  # ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法  # Linux下安装MariaDB数据库问题及解决方法(二进制版本的安装)  # mariadb的主从复制、主主复制、半同步复制配置详解  # MariaDB(Mysql分支)my.cnf配置文件中文注释版  # Windows Server 2016 服务器配置指南 之 MariaDB数据库环境搭建方法  # CentOS 7.0服务器安装配置LAMP服务器(Apache+PHP+MariaDB)  # Window7安装MariaDB数据库及系统初始化操作分析  # 配置文件  # 主创  # 多台  # 多个  # 会不会  # 你有  # 请先  # 该项  # 两项  # 数据库中  # 创建一个  # 再添  # 则说  # 另一台  # 那行  # log_slave_updates  # expire_logs_days  # bash  # db  # ignore 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  如何快速上传建站程序避免常见错误?  如何在Tomcat中配置并部署网站项目?  轻松掌握MySQL函数中的last_insert_id()  详解vue.js组件化开发实践  如何选择可靠的免备案建站服务器?  如何用JavaScript实现文本编辑器_光标和选区怎么处理  公司网站制作需要多少钱,找人做公司网站需要多少钱?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  在线教育网站制作平台,山西立德教育官网?  如何在万网自助建站平台快速创建网站?  如何快速搭建高效简练网站?  企业网站制作这些问题要关注  如何用AI帮你把自己的生活经历写成一个有趣的故事?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Python数据仓库与ETL构建实战_Airflow调度流程详解  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  EditPlus中的正则表达式 实战(2)  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  浅述节点的创建及常见功能的实现  JavaScript模板引擎Template.js使用详解  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何快速生成凡客建站的专业级图册?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  中山网站推广排名,中山信息港登录入口?  详解阿里云nginx服务器多站点的配置  如何为不同团队 ID 动态生成多个非值班状态按钮  如何在万网开始建站?分步指南解析  如何快速上传自定义模板至建站之星?  如何用腾讯建站主机快速创建免费网站?  魔方云NAT建站如何实现端口转发?  如何用免费手机建站系统零基础打造专业网站?  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  音乐网站服务器如何优化API响应速度?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  详解CentOS6.5 安装 MySQL5.1.71的方法  javascript日期怎么处理_如何格式化输出  如何在建站宝盒中设置产品搜索功能?  用yum安装MySQLdb模块的步骤方法  如何在阿里云通过域名搭建网站?  php打包exe后无法访问网络共享_共享权限设置方法【教程】  如何在Ubuntu系统下快速搭建WordPress个人网站?  jQuery中的100个技巧汇总  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】