MariaDB主从复制、主主复制
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.index systemctl 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_bin systemctl 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
MariaDB主从复制、主主复制的更多相关文章
- MySQL(mariadb)主从复制模式与复制过滤
在前一篇文章<mysql多实例与复制应用>中只对mysql的复制做了简单的介绍,本篇内容专门介绍一下mysql的复制. MySQL复制 mysql复制是指将主数据库的DDL和DML操作通过 ...
- MySQL/MariaDB数据库的主主复制
MySQL/MariaDB数据库的主主复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.主主复制概述 1>.什么是主主复制 所谓的主主复制,说白了就是两台节点互为 ...
- MySQL主从复制,主主复制,半同步复制
实验环境: 系统:CentOS Linux release 7.4.1708 (Core) mariadb:mariadb-server-5.5.56-2.el7.x86_64 node1:172.1 ...
- mysql主从复制,主主复制,级联复制,半同步复制
-------------------------------------------------------------------------------主从复制----------------- ...
- MySQL数据的主从复制、半同步复制和主主复制详解
一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...
- mysql主从复制 主主复制 读写分离
首先是mysql的主从复制很简单 主主复制也就是互相主从最麻烦的最难的就是日志恢复,增量恢复什么的比较复杂 首先如果你不会安装mysql版本最好一样,或者往上的版本,因为mysql是向下兼容 请注意不 ...
- MySQL数据的主从复制、半同步复制和主主复制详解-转
一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...
- MySQL主从复制与主主复制
1.简介 MySQL作为世界上使用最为广泛的数据库之一,免费是其原因之一.但不可忽略的是它本身的功能的确很强大.随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时 ...
- Linux下Redis主从复制以及SSDB主主复制环境部署记录
前面的文章已经介绍了redis作为缓存数据库的说明,本文主要说下redis主从复制及集群管理配置的操作记录: Redis主从复制(目前redis仅支持主从复制模式,可以支持在线备份.读写分离等功能.) ...
随机推荐
- python双向链表的疑问(Question)
Table of Contents 1. 问题 问题 在看 collections.OrderedDict 的源码时,对于它如何构造有序的结构这一部分不是很理解,代码如下: class Ordered ...
- 推荐Android几个优质的完整项目学习
==>来自于微信公众号==鸿洋.大家可以关注一波大神之作. 后台经常有人问我能不能推荐几个完整项目用于学习.借着周末的机会,给大家推荐几个,项目我基本都在本地运行过,并且会在文章末尾提供每个项目 ...
- Android 完美解决bundle实现页面跳转并保留之前数据+传值
1.前言 前言: 昨天碰到了一个问题,我想实现页面跳转,采用了Bundle之后,再回到原来的页面,发现数据也没有了, 而且一直报错,网上查找了很多资料,发现要用一个startActivityForRe ...
- python中pip 出错
错误:error in launcher: Unable to create process using '" python多个版本时出现, 解决方法-- 将pip重新安装 python3 ...
- Python-S9-Day114——Flask开始实战
01 今日内容概要 02 课前分享 03 内容回顾 04 路飞学城表结构(一) 05 路飞学城表结构(二) 06 路飞学城立即支付思路 07 今日作业 08 初识Flask 09 werkzug 10 ...
- File IO(NIO.2):路径类 和 路径操作
路径类 Java SE 7版本中引入的Path类是java.nio.file包的主要入口点之一.如果您的应用程序使用文件I / O,您将需要了解此类的强大功能. 版本注意:如果您有使用java.io. ...
- 目标检测算法SSD在window环境下GPU配置训练自己的数据集
由于最近想试一下牛掰的目标检测算法SSD.于是乎,自己做了几千张数据(实际只有几百张,利用数据扩充算法比如镜像,噪声,切割,旋转等扩充到了几千张,其实还是很不够).于是在网上找了相关的介绍,自己处理数 ...
- 遇到的python3 不兼容 python2的地方
python3中执行以下代码 >>> import subprocess >>> p=subprocess.Popen('ls',shell=True,stdout ...
- home.php
home.php <?php error_reporting(0); //抑制所有错误信息 @header("content-Type: text/html; charset=utf- ...
- c#byte数组和string类型转换
http://blog.csdn.net/rowanhaoa/article/details/42144313/ 用system.text中的encoding这个类