MariaDB主从复制虚拟机实战

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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存储引擎,替换了MySQLMyISAM存储引擎,它使用了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=0
server_id=1#主机的标识
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=0
server_id=2#从机的标识
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

 

相关文章
|
6月前
|
监控 Oracle Java
《深入浅出Java虚拟机 — JVM原理与实战》带你攻克技术盲区,探索各大JVM虚拟机特色 —— JVM故障排除指南(先导篇)
《深入浅出Java虚拟机 — JVM原理与实战》带你攻克技术盲区,探索各大JVM虚拟机特色 —— JVM故障排除指南(先导篇)
112 0
|
5月前
|
监控 Java 调度
探秘Java虚拟机(JVM)性能调优:技术要点与实战策略
【6月更文挑战第30天】**探索JVM性能调优:**关注堆内存配置(Xms, Xmx, XX:NewRatio, XX:SurvivorRatio),选择适合的垃圾收集器(如Parallel, CMS, G1),利用jstat, jmap等工具诊断,解决Full GC问题,实战中结合MAT分析内存泄露。调优是平衡内存占用、延迟和吞吐量的艺术,借助VisualVM等工具提升系统在高负载下的稳定性与效率。
102 1
|
4月前
|
缓存 监控 Java
Java虚拟机(JVM)性能调优实战指南
在追求软件开发卓越的征途中,Java虚拟机(JVM)性能调优是一个不可或缺的环节。本文将通过具体的数据和案例,深入探讨JVM性能调优的理论基础与实践技巧,旨在为广大Java开发者提供一套系统化的性能优化方案。文章首先剖析了JVM内存管理机制的工作原理,然后通过对比分析不同垃圾收集器的适用场景及性能表现,为读者揭示了选择合适垃圾回收策略的数据支持。接下来,结合线程管理和JIT编译优化等高级话题,文章详细阐述了如何利用现代JVM提供的丰富工具进行问题诊断和性能监控。最后,通过实际案例分析,展示了性能调优过程中可能遇到的挑战及应对策略,确保读者能够将理论运用于实践,有效提升Java应用的性能。 【
201 10
|
6月前
|
Oracle Java Serverless
JVM工作原理与实战(三十六):GraalVM虚拟机
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了GraalVM、GraalVM的两种运行模式、GraalVM应用场景、参数优化和故障诊断等内容。
288 1
|
6月前
|
存储 监控 安全
JVM工作原理与实战(十六):运行时数据区-Java虚拟机栈
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了运行时数据区、Java虚拟机栈等内容。
47 0
|
Linux 虚拟化
VMware虚拟机中Linux系统磁盘空间扩容实战
VMware虚拟机中Linux系统磁盘空间扩容实战
701 0
|
关系型数据库 MySQL 网络安全
MariaDB主从复制(一主一从)
MariaDB主从复制(一主一从)
|
6月前
|
存储 Kubernetes 云计算
云计算基础与实战:从虚拟机到容器化应用
云计算基础与实战:从虚拟机到容器化应用
224 0
连续仨月霸占牛客榜首!京东T8呕心巨作:700页JVM虚拟机实战手册
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
|
Linux 虚拟化
VMware虚拟机中Centos 6.x系统磁盘空间扩容实战
VMware虚拟机中Centos 6.x系统磁盘空间扩容实战
458 0

推荐镜像

更多