MariaDB主从复制虚拟机实战
MariaDB简介:
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎。

安装参考如下链接:
https://www.cnblogs.com/zhanzhan/p/7729981.html
虚拟机IP信息:
主库(写库):192.168.147.200
从库(读库):192.168.147.201
这里我使用的是一主一从的模式。两台虚拟机上都安装好mariadb后就可以进行主从复制操作。
主库:
登录mariadb后创建test数据库并创建一张user表,接着插入几条数据,命令如下:
>mysql -uroot -p
Enter password:

>create database test;
>show databases;
>use test;
>create table user(id int(11),name varchar(255));
>show tables;
>insert into user values(1,"xiaoming");
>insert into user values(2,"xiaowang");
>select * from user;

退出mariadb控制台,在shell中使用如下命令将主库的数据导出并导入到从库数据库中:
>mysqldump -uroot -p --opt --all-databases >/mydata.sql
Enter password:
>scp -r /mydata.sql root@192.168.147.201:/
root@192.168.147.201's password:
输入从库服务器密码后复制主库旧数据成功。
从库:
mysql -u root -p </mydata.sql
Enter password:
输入从库mariadb的密码后导入成功(可以进数据库查看)。

主库:
>vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=
server_id=#主机的标识
log-bin=mysql-bin#确保可写入的日志文件
binlog_format=mixed#二进制日志的格式,
binlog-do-db=test#允许主从复制数据库
binlog-ignore-db=mysql#不允许主从复制的数据库
切记是在[mysqld]下配置要复制的数据库和binlog相关信息,保存退出后进行从库授权。
>grant replication slave on *.* to slave@'192.168.147.201' identified by '123456';
重启主库mariadb:
>systemctl restart mariadb;
从库:
>vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=
server_id=#从机的标识
log-bin=mysql-bin#确保可写入的日志文件
binlog_format=mixed#二进制日志的格式,
replicate_wild_do_table=test.%#要同步的数据库
replicate_wild_ignore_table=mysql.%#不允许主从复制的数据库
切记是在[mysqld]下进行binlog和要复制的数据库配置,保存后退出。
重启从库mariadb:
> systemctl restart mariadb;
主库:
>mysql -uroot -p
Enter password:
> show master status;

上面的信息将在从库中用到。
从库:
>mysql -uroot -p
Enter password:
>change master to master_host='192.168.147.200',master_user='slave',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=245;
>start slave;
>show slave status\G

若看到2个红色箭头都是yes,则主从同步成功。
接下来我们进行主从复制测试。
主库:
>mysql -uroot -p
Enter password:
>use test;
>select * from user;

>insert into user values(3,"zhangsan");
>select * from user;

我们来到从库看看:
从库:

可见主从复制成功。
如果此时关闭主库服务器,在从库上使用show slave status\G,将提示:
Last_IO_Error: error reconnecting to master 'slave@192.168.147.200:3306' - retry-time: 60 retries: 86400 message: Can't connect to MySQL server on '192.168.147.200' (111)
参考:
https://baike.baidu.com/item/mariaDB/6466119?fr=aladdin
https://blog.csdn.net/qq_41772936/article/details/80380950
MariaDB主从复制虚拟机实战的更多相关文章
- Mysql实现企业级数据库主从复制架构实战
场景 公司规模已经形成,用户数据已成为公司的核心命脉,一次老王一不小心把数据库文件删除,通过mysqldump备份策略恢复用了两个小时,在这两小时中,公司业务中断,损失100万,老王做出深刻反省,公司 ...
- 项目实战7—Mysql实现企业级数据库主从复制架构实战
Mysql实现企业级数据库主从复制架构实战 环境背景:公司规模已经形成,用户数据已成为公司的核心命脉,一次老王一不小心把数据库文件删除,通过mysqldump备份策略恢复用了两个小时,在这两小时中,公 ...
- MariaDB主从复制的逻辑与实现
一.关系型数据库的劣势 “关系型数据库:指采用了关系模型来组织数据的数据库,而关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织.”——Wiki 关系型数据 ...
- Linux-基础学习(五)-mariadb主从复制以及redis学习
开始今日份整理 1.mariadb的主从复制 主从复制大致图示: 1.1 mysql基本命令复习 linux下的操作 .启动mysql systemctl start mariadb .linux客户 ...
- MariaDB主从复制,redis发布订阅,持久化,以及主从同步
一. MariaDB主从复制 mysql基本操作 1 连接数据库 mysql -u root -p -h 127.0.0.1 mysql -u root -p -h 192.168.12.60 2 ...
- 【MySQL】Mariadb主从复制
Mariadb主从复制 环境配置: Master : 172.30.200.200 Slave : 172.30.200.204 架构图,如下: Master的配置: 1.binlog配置 [root ...
- mysql/mariadb主从复制
主从复制简介 MySQL数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过binlog日志复制到需要同步的从服务器上. MySQL数据库支持单向.双向.链式级联, ...
- Mariadb主从复制
前戏: mysql的基本命令复习 .启动mysql systemctl start mariadb .linux客户端连接自己 mysql -uroot -p -h 127.0.0.1 .远程链接my ...
- MariaDB 主从复制
MySQL Replication:NySQL复制,MySQL的复制默认为异步工作模式 mysql的复制功能是mysql内置的,装上它之后就具备了这个功能,而mysql复制是mysql实现大规模 ...
随机推荐
- 如何使用Prometheus采集SAP ABAP Netweaver的应用日志数据
Prometheus是一套开源的系统监控报警框架.它启发于Google的borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发 ...
- Java开发环境之Solr
查看更多Java开发环境配置,请点击<Java开发环境配置大全> 玖章:Solr安装教程 1)官网下载Solr安装包 http://lucene.apache.org/solr/downl ...
- cmdb资产管理2
新增资产 现在api服务端已经能获取到我们要做的操作了.接下来应该是补充获取操作后对应的程序编写 我们要做的是把post请求发过来的数据保存到数据库.我们创建repository 名字的app,并设计 ...
- 一些替代Xshell的软件推荐
FinalShell: 面附上一些截图和官方连接: 官网:http://www.hostbuf.com/ FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发, ...
- ps aux|grep *** 解释
对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令. 使用该命令 可以确定有哪些进程正在运 ...
- php中函数的类型提示和文件读取功能
这个没有深入. <?php function addNumbers(int $a, int $b, bool $printSum): int { $sum = $a + $b; if ($pri ...
- 大数据JavaWeb之java基础巩固----Junit&反射&注解
最近打算从0开始学学大数据,目前的主业是Android开发,但是当年毕业之后其实是搞J2EE的,所以打算没事又来拓展一下后台的技能,扩宽一下自己的知识体系对于自己的未来也能够多一些可能,另外大数据的一 ...
- C# 利用log4net 把日志写入到数据库
效果图: 1:第一步创建SQL表结构 CREATE TABLE [dbo].[LogDetails] ( [LogID] int NOT NULL IDENTITY(1,1) , [Log ...
- webpack脚手架增加版本号
1.product模式下,新增版本号: 1)common.js文件中,输出的文件路径要跟着变化 output: { filename: 'js/[name].js', path: path.resol ...
- 关于mysql数据库utf-8问题
1.bug的出现 我们正常使用utf-8类型来给我们的字段的字符编码,对于正常的都没有问题,例如姓名呀,性别年龄等,但是会遇到一个问题就是如果存储表情emoji则无法存入utf-8编码的字段 2.my ...