mariaDB

https://baike.baidu.com/item/mariaDB/6466119?fr=aladdin

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仓储引擎。

中文名
MariaDB数据库管理体系

外文名
MariaDB

所    属
MySQL的一个分支

根本维护者
开源社区

类    别
积存引擎

进    制
二进制

授权许可
GPL

目录

  1. 1 版本
  2. 2 发展
  3. 3 起源

  1. 4 特点
  2. 5 目标
  3. 6
    其三正工具

  1. 7
    兼容性

版本

MariaDB直到5.5本子,均据MySQL的本。因此,使用MariaDB5.5的总人口见面于MySQL
5.5着打听及MariaDB的有功能。

从今2012年11月12日打披露之10.0.0版开始,不再按MySQL的版号。10.0.x版本为5.5本子也底蕴,加上移植自MySQL
5.6本的效益及自动开发之初成效。\[1\] 

发展

图片 1

建被2009年,MySQL之父Michael “Monty”
Widenius用外的初路MariaDB完成了针对性MySQL的“反戈一碰上”。开发之分的故有是:甲骨文局收购了MySQL后,有以MySQL闭源的绝密风险,因此社区采取分段的法子来逃避这个风险。
过去同一年遭受,大型互联网用户与Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是现阶段太受关注的MySQL数据库衍生版,也为视为开源数据库MySQL的替代品。\[1\] 

MariaDB虽然受视为MySQL数据库的替代品,但它于壮大功能、存储引擎和部分新的功能改进地方都愈了MySQL。而且于MySQL迁移到MariaDB也是非常简单的:

1、数据及表定义文件(.frm)是二进制兼容的

2、所有客户端API、协议和组织都是完全一致的

3、所有文件称、二进制、路径、端口等还是如出一辙的

4、所有的MySQL连接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL
C connector等以MariaDB中还维持无换

5、mysql-client包在MariaDB服务器中也克健康运作

6、共享的客户端库与MySQL也是二进制兼容的

也就是说,在大部情下,你了好卸载MySQL然后安装MariaDB,然后便可以像之前同一健康的运作。\[2\] 

起源

缘何改了个名字为,这中间凡发生来典故的。

MySQL之父Widenius先生离开了Sun之后,觉得指Sun/Oracle来发展MySQL,实在不行无借助谱,于是决定其他起分支,这个分的名字叫MariaDB。

MariaDB跟MySQL在大多数地方是配合的,对于开发者来说,几乎感觉不交其他例外。目前MariaDB是发展绝抢的MySQL分支版本,新本子发布速度都过了Oracle官方的MySQL版本。

以Oracle控制下之MySQL开发,有零星只重要问题:1.
MySQL核心开发团队是封闭的,完全无Oracle之外的积极分子到。很多一把手即使发生心中做贡献,也无办法就。2.
MySQL初本子的揭示速度,在Oracle收购Sun之后多减缓。Widenius有一个ppt,用多少比较了收购之前跟后新本子的公布速度。有无数bugfix和新的feature,都尚未及时在到发表版里。

如上这简单单问题,导致了逐一大商厦,都付出了祥和定制的MySQL版本,包括Yahoo!/Facebook/Google/阿里巴巴+淘宝网等等。

MySQL是开源社区的资金,任何个人/组织都管权据为自我出。为了负广大MySQL社区的力来重新快捷的腾飞MySQL,另外开分支是必的。

MariaDB默认的贮存引擎是Maria,不是MyISAM。Maria可以支持工作,但是默认情况下并未打开工作支持,因为工作支持对性会发出震慑。可以经以下语句,转换为支持工作之Maria引擎。ALTER
TABLE `tablename` ENGINE=MARIA TRANSACTIONAL=1;

特点

MariaDB 是一个施用 Maria
存储引擎的MySQL分版本,是由于原本
MySQL 的撰稿人Michael
Widenius
创造的公司所出之免费开源之数据库服务器。\[3\] 

图片 2
MariaDB相关图书

本条路之多多代码都改编为 MySQL 6.0,例如 “pool of
threads”功能提供解决多数据连接题材。MariaDB
5.1.41
RC可以到这边下载,32各项以及64各项就编译Linux版本,还包源代码包。MariaDB基于GPL
2.0揭示。

同 MySQL 相较,MariaDB 更强之地方在:

Maria
积存引擎

PBXT 存储引擎

XtraDB
囤引擎

FederatedX
仓储引擎

再也快的复制查询处理

线程池

又少之警戒及bug

运作速度更快

更多的 Extensions (More index parts, new startup options etc)

更好之功效测试

数据表消除

慢查询日志的扩张统计

支持对 Unicode 的排序

对立于MySQL最新的版本5.6的话,在性、功能、管理、NoSQL扩展方面,MariaDB包含了重增长的特性。比如微秒的支撑、线程池、子查询优化、组提交、进度报告等。详情见列表。

High Performance
Developers
DBAs
NoSQL
Thread pool
线程池
Microsecond precision & type
微秒支持
Segmented MyISAM keycache
MyISAM缓存分段
HandleSocket
直接InnoDB/XtrDB访问
Group commit for the binary log
binlog组提交
SphinxSE for full-text search
SphinxSE全文索引支持
Authentication plugins – PAM, Active Directory
授权插件
Dynamic columns
动态列
Non-blocking client library
非阻塞库
Subqueries materialize
子查询优化
LIMIT ROWS EXAMINED
LIMIT行检查限制
  
  
GIS functionality
地理信息系统支持
Progress reporting
进度报告
  

目标

靶是提供一个出于社区出的、稳定之、总是免费之MySQL分支,在用户级别上配合主流版本。我们为好的版本及上游、社区本的互操作性提高而使劲。

MariaDB分支与最新的MySQL发布版的道岔保持一致性, 例如MariaDB
5.1.47对准诺MySQL 5.1.47,等等。

老三在工具

MariaDB\[4\] 
的API和磋商兼容MySQL,另外又补加了有的效能,以支撑当地的非阻塞操作和速度报告。这象征,所有以MySQL的连接器、库和应用程序也拿会当MariaDB下办事。在是基础及,由于担心甲骨文MySQL的一个更加封闭的软件类,Fedora的计划以Fedora
19遭遇之以MariaDB取代MySQL\[5\] 
,维基媒体基金会的服务器同样也用MariaDB取代了MySQL。
  如下是支撑MariaDB的客户端工具:
  DBEdit 一个免费之MariaDB数据库与其余数据库管理应用程序。
  Navicat 一密密麻麻Windows、Mac OS X、Linux下占发数据库管理应用程序。
  HeidiSQL
一个Windows上随便与开放源码的MySQL客户端。它支持MariaDB的5.2.7本和之后的版。[5][6]
  phpMyAdmin 一个根据网络的MySQL数据库管理应用程序

兼容性

MariaDB是MySQL的亚迈入制替代品

由于实用的目的,MariaDB是同一MySQL版本的次进制替代品(例如MySQL
5.1->MariaDB 5.1, MariaDB5.2和MariaDB 5.3是相当的。MySQL
5.5以见面和MariaDB 5.5维持兼容)。这意味:

  • 数及表定义文件(.frm)文件是二进制兼容的。

  • 享有客户端APIs,协议以及布局都是同样的。

  • 具备的文件称、二进制文件的途径、端口、套接字等等……应该是一致的。

  • 怀有MySQL的连接器(PHP Python Perl Java .NET MyODBC Ruby MySQL
    C连接器相当) 和MariaDB的匪变换。

    • 有局部暨PHP5的装问题设专注(一个及镇的PHP5如何检查库兼容性的bug)。
  • mysql-client包还得与MariaDB服务器一起坐班。

这意味着对于多数动静下,您可以卸载MySQL及设置MariaDB,可以干活大好。(不需要更换成为其他数据文件,如果下同一主版本,比如5.1)。

咱每月会暨MySQL代码库合并来确保我们的兼容性及获取任何Oracle修正的bug和具备特性。

咱在剧本升级方面呢召开了大量的劳作,从MySQL 5.0荣升到MariaDB
5.1于打MySQL 5.0暨MySQL 5.1双重易于。

立马即是说:MariaDB有成千上万的初选、扩展,存储引擎和bug修复,而MySQL是从未底。您可以当MariaDB分发版本差异页面找到不同版本的职能特色集。可在MariaDB
versus MySQL – Features看到。

MariaDB 5.1以及MySQL 5.1之不兼容性

为了给MariaDB比MySQL提供更多更好的音信,极少情况下MariaDB会现出非匹配情况。

假如以MariaDB
5.1替MySQL5.1,您将视如下列举的周曾了解用户级无配合情况:

  • 装之管教号,用MariaDB代替MySQL。

  • 时间控制或两样,MariaDB在过剩气象下比较MySQL快。

  • mysqld在MariaDB读取是my.cnf中[MariaDB ]的部分。

  • 要其不是完全相同的MariaDB编译版本,不能够动用就提供二进制的储存引擎库给MariaDB使用
    (这是因服务器内部结构THD在MySQL和MariaDB之间不等。这为是同广的MySQL版本不同的)。这应无是问题,因为于大多数丁无加以载新存储引擎,MariaDB比MySQL带有更多的储存引擎。

  • CHECKSUM TABLE可能发不同之结果,由于MariaDB并无忽视NULL的排,MySQL
    5.1忽略(未来底MySQL版本应该计算checksums和MariaDB一样)。在MariaDB
    开启mysqld
    –old选项,您得取“旧式”的校验和。但是要是顾,这个MyISAM存储引擎和Aria
    存储引擎在MariaDB实际上以里边采用新的checksum,因此,如果你运的是—old
    , CHECKSUM命令将见面重复慢,因为她需,一行一行的算计checksum。

  • 慢速查询日志有更多信息有关查询,
    如果有一个本子解析慢速查询日志这说不定是一个题目。

  • MariaDB默认情况下于MySQL需要更多的内存,因为我们来默认情况下启用Aria存储引擎处理其中临时表。如果急需MariaDB使用非常少之内存(这是为牺牲性能为代价的),您得设置aria_pagecache_buffer_size的值也
    1M(默认值为128M)。

假使在下MariaDB的初命令选项,新特征或新存储引擎,那么即便非克于MySQL和MariaDB之间自由来回切换了。

MariaDB 5.2与MySQL 5.1之无兼容性

暨MariaDB 5.1暨MySQL 5.1的如出一辙,再续相同长长的:

  • 新增SQL_MODE的取值:IGNORE_BAD_TABLE_OPTIONS。如果非设置该值,使用一个申明、字段或索引的性(选项)不深受支持的储存引擎将见面造成错误。这个转变或许勾警告不科学的表定义出现在错误日志中,请用mysql_upgrade修复这个警示。

实际上,MariaDB 5.2是MariaDB 5.1和MySQL 5.1替代品。

MariaDB 5.3与MySQL 5.1跟MariaDB 5.2的无兼容性

  • 有的错误信息涉及到不当转换的,MariaDB的出入在消息备受提供了再次多之音有关到底是乌有了擦。

  • MariaDB专用的荒谬编号都起1900起来,为底是休跟MySQL的缪冲突。

  • MariaDB在所有工作状况被得根据微秒计时工作;而MySQL在某些情况下,如datetime和time,确实会丢微秒部分。

  • 原始的–maria启动选被去除。应该使用–aria前缀代替。(MariaDB
    5.2还支持就—maria-和- aria-)

  • SHOW
    PROCESSLIST有一个格外的process列,显示有令的快。您可启动mysqld用–old
    标志禁用它。

  • INFORMATION_SCHEMA.PROCESSLIST对快报告有三个新列: STAGE,
    MAX_STAGE和 PROGRESS。

  • 以/*M! 或/*M!#####开头的增长注释会落推行。

  • 倘若应用max_user_connections =

    0(也就是说任何数的连天)启动mysqld,您就非克于mysqld运行时修改全局变量了。这是坐当mysqld以max_user_connections

    0启动时,它不分配计数结构(包括每个连的互斥锁)。如果稍后改变变量,这将促成错误的计数器。如果欲于运转时会转这个变量,请以启动时将它们装为一个比高的价值。

  • 可设置max_user_connections(包括全局变量和GRANT选项两种植状况)为-1来阻拦用户连接至服务器。全局变量max_user_connections变量不影响有super特权的用户连接。

IGNORE命令并无会见忽略所有错误(比如致命错误),只是会忽略可以高枕无忧忽略的那些。

MariaDB 5.5同MariaDB 5.3之匪兼容性

XtraDB

XtraDB提供者Percona,在5.5替码库并未提供XtraDB所有早些时候的力量特色。正以如此,MariaDB
5.5也非能够提供它有功能特色。

于5.5版中XtraDB缺少的选项

以下选项XtraDB
5.5凡勿支持之。如果以my.cnf文件中动用到这些选择,请去后再度升级至5.5。

  • innodb-adaptive-checkpoint;请使用innodb_adaptive_flushing_method
    替代。

  • innodb-auto-lru-dump;请使用innodb_buffer_pool_restore_at_startup
    替代。

  • innodb-blocking-lru-restore;请使用innodb-blocking-buffer-pool-restore
    替代。

  • innodb-enable-unsafe-group-commit

  • innodb-expand-import;请使用 innodb_import_table_from_xtrabackup
    替代。

  • innodb-extra-rsegments;请使用innodb_rollback_segment 替代。

  • innodb-extra-undoslots

  • innodb-fast-recovery

  • innodb-flush-log-at-trx-commit-session

  • innodb-overwrite-relay-log-info

  • innodb-pass-corrupt-table;请使用innodb_corrupt_table_action
    替代。

  • innodb-use-purge-thread

  • xtradb-enhancements

网站地图xml地图