首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mariadb与mysql做主从

基础概念

MariaDBMySQL 都是基于关系型数据库管理系统(RDBMS)的开源数据库。MySQL 是由 Oracle 公司维护的,而 MariaDB 是由 MySQL 的原始开发者创建的一个分支,旨在保持开源并提供额外的功能和改进。

主从复制 是一种数据库复制技术,其中一个数据库(主数据库)的更改会被复制到一个或多个其他数据库(从数据库)。这种配置可以提高数据的可用性和读取性能,并提供数据备份和恢复的解决方案。

相关优势

MariaDB 的优势包括:

  • 开源:完全开源,社区支持活跃。
  • 兼容性:与 MySQL 高度兼容,易于迁移。
  • 额外功能:提供了一些 MySQL 不具备的功能,如更好的性能调优工具、更多的存储引擎等。

MySQL 的优势包括:

  • 稳定性:Oracle 公司的支持使得 MySQL 更加稳定。
  • 企业级特性:提供了一些企业级的特性,如高级安全、在线备份等。

类型

主从复制主要有以下几种类型:

  • 异步复制:主数据库在执行完事务后立即返回结果,而不等待从数据库确认。这是默认的复制方式,适用于对延迟要求不高的场景。
  • 半同步复制:主数据库在执行完事务后,需要等待至少一个从数据库确认收到数据后才返回结果。这种方式可以减少数据丢失的风险。
  • 同步复制:主数据库在执行完事务后,需要等待所有从数据库确认收到数据后才返回结果。这种方式可以确保数据的强一致性,但会增加延迟。

应用场景

主从复制适用于以下场景:

  • 读写分离:将读操作分发到从数据库,减轻主数据库的压力,提高系统的读取性能。
  • 数据备份:从数据库可以作为主数据库的备份,确保数据的安全性。
  • 高可用性:当主数据库发生故障时,可以快速切换到从数据库,保证系统的可用性。

遇到的问题及解决方法

问题1:主从复制延迟

  • 原因:网络延迟、从数据库性能不足、主数据库负载过高。
  • 解决方法
    • 优化网络配置,减少网络延迟。
    • 提升从数据库的性能,如增加硬件资源、优化查询。
    • 分担主数据库的负载,如通过分片、读写分离等技术。

问题2:主从数据不一致

  • 原因:网络中断、从数据库宕机、主从复制配置错误。
  • 解决方法
    • 确保网络的稳定性,及时处理网络中断问题。
    • 定期检查从数据库的状态,确保其正常运行。
    • 检查并修正主从复制的配置,确保配置正确无误。

示例代码

以下是一个简单的 MariaDB 主从复制的配置示例:

主数据库配置(my.cnf)

代码语言:txt
复制
[mysqld]
server-id=1
log_bin=mysql-bin
binlog_do_db=mydatabase

从数据库配置(my.cnf)

代码语言:txt
复制
[mysqld]
server-id=2
relay_log=mysql-relay-bin
log_bin=mysql-bin
binlog_do_db=mydatabase

主数据库创建复制用户

代码语言:txt
复制
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

从数据库设置主服务器信息

代码语言:txt
复制
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
START SLAVE;

参考链接

通过以上配置和示例代码,可以实现 MariaDB 和 MySQL 的主从复制,提升数据库的性能和可用性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MariaDB 主从同步与热备

MariaDB数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,还能实现数据库的拓展,多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能,为大规模企业MariaDB...,写入log-bin参数开启二进制日志文件,然后写入server-id指定本台MariaDB服务器的ID号(注意:这里主从不要重复)vim /etc/my.cnf[mysqld]log-bin=mysql-bin...#开启二进制日志文件server-id=12 #本台MySQL服务器ID(主从不能重复)systemctl restart mariadb...数据库互为主从,所以,要在两台主机间作两次相同的操作◆两台同步执行◆1.安装MariaDB,设置初始密码,启动服务,并设置开机自启动,这里的配置步骤应在两台主机上同步执行yum install -y mariadb...server-id=110 #ID号,同一主从环境不能相同user=mysql #MySQL登陆用户名

1.9K10
  • MariaDB与MySQL比较

    在MariaDB中,有如下针对MariaDB与MySQL两种数据库比较的官方说法: MariaDB 和 MySQL 是世界上部署最广泛的两个开源关系数据库,虽然它们有共同的祖先,并通过 MySQL 协议保持兼容性...从MySQL迁移到MariaDB的优势 MariaDB 满足与 MySQL 相同的标准企业要求,通常具有附加特性、功能和选项,并且通过实施 MySQL 协议并保持与常见 MySQL 数据类型和 SQL...MariaDB提供的高级功能 MariaDB 和 MySQL 都是通用数据库。...Oracle数据库兼容性 MariaDB 是唯一与 Oracle 数据库数据类型、序列、PL/SQL 存储过程等兼容的开源数据库,无需修改数据库模式和重写存储过程即可“提升和转移”。...联邦 MariaDB 和 MySQL 可以访问其他 MariaDB/MySQL 数据库中的表,但只有 MariaDB 可以联合异构数据库,包括 Oracle 数据库、Microsoft SQL Server

    3.5K40

    MySQL与MariaDB中游标的使用

    在MySQL、MariaDB中实现的游标比较简单,它只有一种遍历方式:逐行向前遍历。MariaDB 10.3后,游标方面支持的更完整一点:支持游标参数。...光标的使用包括声明光标、打开光标、使用光标和关闭光标(MySQL/MariaDB中的游标无需释放)。光标必须声明在处理程序之前,并且在声明保存结果集的变量之后。...在游标无法获取到下一行数据的时候,将会返回一个1329错误码,这个错误码对应的SQL状态码为"02000",它们等价于NOT FOUND(这几个是等价的,只是MariaDB中分了3类描述问题的代码而已)...关于handler详细内容,见我翻译的MariaDB手册:https://mariadb.com/kb/zh-cn/declare-handler/ 3.打开游标 当声明了一个游标后,必须要打开游标才能使用游标...open cursor_name; 例如: open cur_city; 对于mariadb 10.3,由于支持游标参数,因此语法为: open cursor_name(value1,value2);

    2.8K10

    Mysql安装与主从配置

    安装MySql 操作系统:Windows Server 2008 R2 Standard MySql版本:mysql-5.7.17-winx64 第一步:解压mysql-5.7.17-winx64.zip...第四步:修改my.ini 文件,在[mysqld]下添加一行skip-grant-tables,然后依次执行 启动mysql服务: net start mysql 进入MySql:mysql 设置密码:...'%' IDENTIFIED BY 'password' WITH GRANT OPTION; flush privileges; 上述命令中username和password为待创建的用户名和密码 主从复制...binlog-do-db:要主从同步的库 第二步授权 命令提示符下操作 Cd到bin目录:cd C:\mysql-5.7.17-winx64\bin 进入mySql:mysql -uroot -pcnki2017...开启主从复制用户:GRANT REPLICATION SLAVE ON *.* to ‘root’@‘192.168.107.73’identified by cnki2017;(注意有分号) 注:这里可指定给从库的其他账号

    1.3K60

    MariaDB与MySQL版本对应关系全解析

    本文旨在深入探讨MariaDB与MySQL的版本对应关系,尤其是针对MariaDB 10.4.13版本与MySQL的对应版本进行详细分析。...一、MariaDB与MySQL的历史关系 MariaDB由MySQL的创始人Michael Widenius(昵称Monty)在2009年作为MySQL的一个分支开始开发。...二、版本对应关系概览 MariaDB的版本号通常与MySQL的版本号有一定的对应关系。MariaDB的早期版本,如MariaDB 5.1、5.2和5.3,都是基于MySQL 5.1版本。...MariaDB 5.5基于MySQL 5.5 MariaDB 10.0相当于MySQL 5.6 MariaDB 10.1相当于MySQL 5.7 从MariaDB 10.2开始,MariaDB的发展路径与...对于特定的MariaDB版本与MySQL版本的对应关系,最好的做法是查看MariaDB官方文档中的具体发行说明,了解该版本的特性和改进。

    4.3K10

    Mysql主从

    前提: mysql主从的搭建前提有: 两台虚拟机 两台虚拟机上都装有mysql,并且版本一样,两边的mysql数据库文件一致,mysql的安装方式我在前面博客已经介绍过了。...环境: Host Role IP mysql-1 Master 192.168.30.106 mysql-2 Slave 192.168.30.107 搭建 在主从服务器上都创建一个用户 $ mysql..., mysql如何减少主从复制延迟: 如果延迟比较大,就先确认以下几个因素: 从库硬件比主库差,导致复制延迟 主从复制单线程,如果主库写并发太大,来不及传送到从库 就会导致延迟。...,如果连接建立失败,间隔多久后重试 通常配置以上2个参数可以减少网络问题导致的主从数据同步延迟 MySQL数据库主从同步延迟解决方案 最简单的减少slave同步延时的方案就是在架构上做优化,尽量让主库的...另外就是使用比主库更好的硬件设备作为slave 扩展 主从还能配合MySQL中proxy实现真正意义的读写分离,还能配合keepalived做主从切换高可用,还能配合mysqljump做异地备份,在从库定时物理备份

    2.8K10

    11.2 MySQL、MariaDB介绍

    MySQL/Mariadb介绍 MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀) sun...公司主要做Java 在后期后学到jdk,jdk 就是由 sun 公司开发的 oracle公司,专门做数据库的,都是比较大型的,比如银行等金融企业 oracle通常会装在小型机上,小型机和linux不同...官网 最新版本5.7GA/8.0DMR MySQL5.6变化比较大,5.7性能上有很大提升 Mariadb为MySQL的一个分支,官网,最新版本10.2 MariaDB主要由SkySQL公司(现更名为...MariaDB公司)维护,SkySQL公司由MySQL原作者带领大部分原班人马创立....Mariadb5.5版本对应MySQL的5.5,Mariadb10.0对应MySQL5.6 Community 社区版本——>开源的版本,免费使用 Enterprise 企业版 GA(Generally

    2.1K60

    MySQL主从复制与读写分离

    1、mysql主从复制(类型): 1)基于语句的复制,将执行的命令复制。默认采用此法,效率高。 2)基于行的复制。将改变的内容复制。...3)混合类型的复制 复制过程:master在日志中记录改变,并通知存储引擎提交,slave将maser的日志复制到中继日志,slave从中继日志读取事件并更新,使其与master一致。...2、mysql读写分离:只在主服务器上写,只在从服务器上读 分类: 1)基于程序代码内部实现: 2)基于中间代理层实现:客户端是mysql间通过代理连接。amoeba是代表性产品。...3、时间服务器:ntp服务,端口号:123/udp 服务器端主配置文件:/etc/ntp.conf 客户端同步时间:ntpdate 服务器IP地址 4、主从复制的配置: 主服务器的配置: 1)修改主配置文件...5、mysql读写分离 amoeba:mysql的分布式数据库代理层软件。

    76960

    MySQL主从复制与主主复制

    数据同步我们可以通过MySQL内部配置就可以轻松完成,主要有主从复制和主主复制。...mysql>FLUSH PRIVILEGES;             第二步:             查看192.168.95.11MySQL服务器二进制文件名与位置             mysql...第三步:             告知二进制文件名与位置             在192.168.95.12中执行:             mysql>CHANGE MASTER TO                      ...完成主从复制配置       3.4、测试主从复制             在192.168.95.12中             mysql>SLAVE START;   #开启复制             ...第三步:            告知二进制文件名与位置            在192.168.95.11中执行:            mysql>CHANGE MASTER TO

    1.1K70

    MySQL主从搭建

    前言 公司规定,生产环境中一旦与数据(缓存也不例外)扯上关系的一律不由k8s统一管理 因此,别想一键式部署了,只能老老实实单独部署 再此,就记录一下搭建过程,分享给小伙伴们,避免浪费时间 废话不多说,...上车 下载 没有安装mysql,我这边也给大伙们准备了~ MySQL详细安装 配置 1、master和node二台服务器,分别到/etc/my.cnf配置文件, 在mysqld里添加一下属性 #master...= 1001 2、进入Mysql,分别为二台master创建各种的用户供对方使用 温馨提示: 本案例为双主从,也就是master同步到node,node同步到master。...单主从,就只需要不执行带*即可 #master的机器上 CREATE USER 'master'@'%' IDENTIFIED BY '123456';   #node的机器上(*) CREATE USER....000026',MASTER_LOG_POS=0; slave start; show slave status; 4、数据库主从日志很大 设置只保留30天的binlog (临时,重启mysql

    2.4K10
    领券