1.部署

10.0.0.21  MariaDB-21

10.0.0.22  MariaDB-22

cat /etc/yum.repos.d/mariadb.repo
[mariadb]
name=MariaDB
baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos7-amd64/
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
yum -y install MariaDB-server MariaDB-client
systemctl start mariadb
# 除了将密码改为mariadb123456,其余步骤都按Y
/usr/bin/mysql_secure_installation
# 如果需要修改默认的数据路径,先不要启动mariadb
mkdir -p /data/mariadb
chown -R mysql:mysql /data/mariadb
# 将默认的数据拷贝到新的路径下面
cp -a /var/lib/mysql/* /data/mariadb/
# 修改配置文件/etc/my.cnf.d/server.cnf
[mysqld]
datadir=/data/mariadb
socket=/var/lib/mysql/mysql.sock
character_set_server=utf8
slow_query_log=on
slow_query_log_file=/data/mariadb/logs/slow_query_log.log
long_query_time=2
log-error =/data/mariadb/logs/error.log
# 本实验一切按照默认的来

2.配置主从复制

a.在10.0.0.21上配置主服务器

innodb_file_per_table:拆分表数据存储
log-bin:开启二进制日志
cat /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = ON
innodb_file_per_table = ON
server-id = 21
log-bin = master-bin
log-bin-index=master-bin.indexsystemctl restart mariadb.service
mysql -uroot -pmariadb123456
grant replication slave,replication client on *.* to 'repluser'@'10.0.0.%' identified by 'repluser123456';
flush privileges;
# 查看主服务器的状态信息,在从服务器中要用到
show master status\G
File: master-bin.000001
Position: 676

b.在10.0.0.22上配置从服务器

从服务器最好启用read_only=ON禁止写操作,防止误操作
cat /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = ON
innodb_file_per_table = ON
server-id = 22
relay_log = slave_relay_binsystemctl restart mariadb.service
mysql -uroot -pmariadb123456
change master to master_host='10.0.0.21',master_user='repluser',
master_password='repluser123456',master_log_file='master-bin.000001',master_log_pos=676;
start slave;
show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

测试,在主服务器上创建库,创建表,插入数据,可以在从服务器上看到数据被同步过来

create database TestDB;
use TestDB;
create table student(id int,name varchar(20));
insert into student(id,name) values('1','zhangsanfeng');
insert into student(id,name) values('2','budaiheshang'),('3','wusanren');
insert into student set id=4,name="zhangwuji";

3.配置主主复制

在上面主从复制的基础上继续做,即:在之前的master上开启relay_log,在之前的slave上开启log-bin,并且把步进值改为n

auto_increment_offset:起始值,一般填第n台主MySQL,此时为第一台主MySQL

auto_increment_increment:步进值,一般有n台主MySQL就填n

binlog-ignore:忽略某个库,这里先不用这个参数

replicate-do-db:要同步的数据库,默认所有库

10.0.0.21的配置文件内容如下

cat /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = ON
innodb_file_per_table = ON
server-id = 21
auto_increment_offset = 1
auto_increment_increment = 2
relay_log = slave_relay_bin
log-bin = master-bin
log-bin-index = master-bin.index

10.0.0.22的配置文件内容如下

cat /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = ON
innodb_file_per_table = ON
server-id = 22
relay_log = slave_relay_bin
auto_increment_offset = 2
auto_increment_increment = 2
log-bin = master-bin
log-bin-index = master-bin.index

修改完配置文件之后,两台服务器都要重启

systemctl restart mariadb.service# 在10.0.0.22上授权用户
mysql -uroot -pmariadb123456
grant replication slave,replication client on *.* to 'repluser'@'10.0.0.%' identified by 'repluser123456';
flush privileges;
# 查看二进制日志名和位置
show master status\G
File: master-bin.000001
Position: 329
# 在10.0.0.21中执行
change master to master_host='10.0.0.22',master_user='repluser',
master_password='repluser123456',master_log_file='master-bin.000001',master_log_pos=329;
start slave;

完成主主复制配置,在10.0.0.22上进行测试,可在21上看到数据已经被同步

use TestDB;
create table tab1(id int auto_increment,name varchar(10),primary key(id));
insert into tab1 (name) value('zhangsan'),('lisi'),('wangmazi');

主主复制配置文件中auto_increment_increment和auto_increment_offset只能保证主键不重复,却不能保证主键有序.

主从|主主写的不错:https://www.cnblogs.com/phpstudy2015-6/p/6485819.html

主从|主主|半同步都有写:https://www.jb51.net/article/97786.htm

转载于:https://www.cnblogs.com/fawaikuangtu123/p/10927616.html

MariaDB主从复制、主主复制相关推荐

  1. mysql主主复制、主从复制、半同步的实现

    实验前提:两台服务器 Master server:172.16.23.1 slave server:172.16.23.2 一.mysql主从服务器实现 简单介绍: MySQL支持单向.异步复制,复制 ...

  2. Mysql之主从复制及主主复制

    环境: 2台数据库服务器(centos6.5,mysql5.6) 假设ip为192.168.1.11和192.168.1.12 主从复制 192.168.1.11  为主数据库服务器 192.168. ...

  3. 运维工程师必备之MySQL数据的主从复制、半同步复制和主主复制详解

    一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...

  4. mysql主从复制,半同步,主主复制架构的实现

    mysql的数据同步功能,不仅在一定程度上提供数据库查询时的负载均衡,而且为实现数据库的冗灾.备份.恢复.负载均衡等都是有极大帮助.而数据的同步功能可以通过主从复制来实现,而主从复制是异步进行的,并且 ...

  5. php mysql 主从复制_Windows 环境下,MySQL 的主从复制和主主复制

    Mysql的主从配置 1.找到配置文件 找到配置文件是主从复制的第一个难点.很多新手都容易找错配置文件,一般my.ini配置文件所在的位置都是隐藏的. 一般人都以为配置文件为 C:\Program F ...

  6. linux mysql主主复制_MySQL主从复制与主主复制

    1.简介 MySQL作为世界上使用最为广泛的数据库之一,免费是其原因之一.但不可忽略的是它本身的功能的确很强大.随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时 ...

  7. MariaDB 10.3 主主半同步复制

    MariaDB主主半同步,也就是两个主从同步都开启半同步复制. 一. MariaDB01主 MariaDB02从  开启半同步复制 1. MariaDB01 主 SET GLOBAL rpl_semi ...

  8. mysql主主 主键冲突_mysql主从复制原理,主主复制时主键冲突解决

    主从复制原理: 1.master的增删改记录写入binlog: 2.slave的I/O Thread(负责读取master的binlog)读取binlog并将记录写入relaylog: 3.slave ...

  9. mysql master slave 灾备技术_MySQL灾备恢复在线主从复制变成主主复制及多源复制【转】...

    生产主主复制(AB),和灾备主从复制(B--->C).当生产出现问题时,数据写入切换到灾备数据库,待生产恢复后,将灾备回写到生产.步骤如下: 1.灾备与生产其中一台建立主主复制,这样生产的那台就 ...

最新文章

  1. 研究院正式启动“智源学者计划”,公布候选人名单,并发布首个联合实验室...
  2. 物联网 — 5G 边缘计算与 IoT
  3. Delphi下使用OpenOffice+JodConverter+SWFtools进行文件转换
  4. vscode 新建cpp文件_Visual Studio Code (vscode)编译C++
  5. 【Java进阶】Elasticsearch应用之京东搜索
  6. 2020年十月蓝桥杯A组题解【10月17日】【附完整代码】
  7. Generator执行步骤浅析
  8. 作者:赵菁华(1977-),女,中国电子技术标准化研究院高级工程师。
  9. 监督学习 | 集成学习 之Bagging、随机森林及Sklearn实现
  10. python字典和集合对象可以进行索引操作_python字典和列表的高级应用
  11. 宾大最新《图神经网络》课程,附视频与课件
  12. Greenplum技术浅析
  13. linux中的sed指令
  14. 用于创建此对象的程序是excel_一起学Excel专业开发22:使用类模块创建对象1
  15. matlab各种文件读写,Matlab的各种数据读取、文件读写等操作汇总
  16. Unable to validate using XSD: Your JAXP provider does not support XML Schema
  17. LogLog Counting
  18. Gamma校正与线性空间
  19. linux HID驱动分析
  20. 2021年11月15日到2021年11月21日笔记

热门文章

  1. python版本与编码的区别
  2. POJ 2104 K-th Number
  3. javascript检测对象中是否存在某个属性判断方法小结
  4. Unieap3.5错误收集
  5. quick cocos2d-x 使用CCTableView 例子
  6. c编写程序完成m名旅客和n辆汽车的同步程序代写
  7. 在网页中加入百度搜索条
  8. 【LeetCode】55.跳跃游戏
  9. winform_界面美化设计_显示/隐藏侧边栏
  10. redis 管理工具_Redis的跨平台GUI 桌面管理工具