
【軟件介紹】
MariaDB數(shù)據(jù)庫管理系統(tǒng)是MySQL的一個(gè)分支,主要由開源社區(qū)在維護(hù),采用GPL授權(quán)許可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲(chǔ)引擎方面,使用XtraDB(英語:XtraDB)來代替MySQL的InnoDB。 MariaDB由MySQL的創(chuàng)始人Michael Widenius(英語:Michael Widenius)主導(dǎo)開發(fā),他早前曾以10億美元的價(jià)格,將自己創(chuàng)建的公司MySQL AB賣給了SUN,此后,隨著SUN被甲骨文收購,MySQL的所有權(quán)也落入Oracle的手中。MariaDB名稱來自Michael Widenius的女兒Maria的名字。MariaDB基于事務(wù)的Maria存儲(chǔ)引擎,替換了MySQL的MyISAM存儲(chǔ)引擎,它使用了Percona的 XtraDB,InnoDB的變體,分支的開發(fā)者希望提供訪問即將到來的MySQL 5.4 InnoDB性能。這個(gè)版本還包括了 PrimeBase XT (PBXT) 和 FederatedX存儲(chǔ)引擎。

【軟件功能】
1、Maria 存儲(chǔ)引擎2、PBXT 存儲(chǔ)引擎
3、XtraDB 存儲(chǔ)引擎
4、FederatedX 存儲(chǔ)引擎
5、更快的復(fù)制查詢處理
6、線程池
7、更少的警告和bug
8、運(yùn)行速度更快
9、更多的 Extensions (More index parts, new startup options etc)
10、更好的功能測試
11、數(shù)據(jù)表消除
12、慢查詢?nèi)罩镜臄U(kuò)展統(tǒng)計(jì)
13、支持對(duì) Unicode 的排序

【軟件特色】
1 數(shù)據(jù)和表定義文件(.frm)是二進(jìn)制兼容的2 所有客戶端API、協(xié)議和結(jié)構(gòu)都是完全一致的
3 所有文件名、二進(jìn)制、路徑、端口等都是一致的
4 所有的MySQL連接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不變
5 mysql-client包在MariaDB服務(wù)器中也能夠正常運(yùn)行
6 共享的客戶端庫與MySQL也是二進(jìn)制兼容的

【使用教程】
安裝安裝Mariadb
1. CentOS 7.0 版本信息查看

2. 安裝Mariadb

3. Mariadb安裝成功

第二步: 測試Mariadb
1. 連接Mariadb
報(bào)錯(cuò): ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

2. 解決連接不上的問題

3. 重新連接Mariadb

4. 查看數(shù)據(jù)庫

5. 退出數(shù)據(jù)庫

在Linux中快速使用
首先進(jìn)行列出所有的數(shù)據(jù)庫,進(jìn)行登錄服務(wù)器運(yùn)行如圖所示的命令來進(jìn)行登錄,輸入密碼登錄,列出當(dāng)前服務(wù)器所擁有的所有數(shù)據(jù)庫。

接著在MariaDB中創(chuàng)建新數(shù)據(jù)庫,登錄MariaDB后運(yùn)行命令來直接在終端創(chuàng)建新數(shù)據(jù)庫,在這里的dan就是數(shù)據(jù)庫的名稱。

然后要?jiǎng)h除數(shù)據(jù)庫,在已經(jīng)登錄的服務(wù)器會(huì)話中使用mysqladmin -u root -p drop dan命令來進(jìn)行刪除數(shù)據(jù),出現(xiàn)access denied錯(cuò)誤需要使用root授權(quán),將用戶修改為root權(quán)限。

接著使用CREATE USER 'dan'@'localhost' IDENTIFIED BY 'password'命令創(chuàng)建數(shù)據(jù)庫新用戶,在這里的用戶創(chuàng)建成功就會(huì)添加一個(gè)新的數(shù)據(jù)庫。

然后授權(quán)用戶訪問某個(gè)數(shù)據(jù)庫,將會(huì)使用dan對(duì)名為test的數(shù)據(jù)庫完全操作的權(quán)限,要賦予訪問所有數(shù)據(jù)庫的權(quán)限,將test替換成*符號(hào)。

最后要?jiǎng)?chuàng)建單個(gè)數(shù)據(jù)庫的備份在終端窗口中使用一次性創(chuàng)建多個(gè)數(shù)據(jù)庫的備份以備以后使用,進(jìn)行一次性導(dǎo)出多個(gè)數(shù)據(jù)庫來進(jìn)行恢復(fù)數(shù)據(jù)庫時(shí)使用。

【常見問題】
故障1:初次啟動(dòng)遇到的故障1[ERROR] InnoDB: auto-extending data file ./ibdata1 is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
問題原因:
在初始化數(shù)據(jù)庫時(shí)系統(tǒng)自動(dòng)建立了ibdata1,ib_logfile0,ib_logfile1幾個(gè)文件
在配置文件中由于配置了:innodb_data_file_path = ibdata1:10M;ibdata2:10M:autoextend,跟初始化時(shí)的ibdata1的大小不一致導(dǎo)致的;
默認(rèn)的ibdata1大小為8M,而我在此配置的為10M,是導(dǎo)致問題的原因
解決方法:
在mysql的data目錄下,刪除ibdata1,ib_logfile0,ib_logfile1;
在重新啟動(dòng)mysql,系統(tǒng)會(huì)根據(jù)配置再次生成ibdata文件
故障2:初次啟動(dòng)遇到的故障2
which: no socat in (/usr/sbin:/sbin:/usr//bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin) WSREP_SST: [ERROR] socat not found in path: /usr/sbin:/sbin:/usr//bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin (20170323 17:32:25.176)
問題原因:
在server.cnf中配置了wsrep_sst_auth="sst:86rt6y1adf@abc"
需要用到socat軟件包;
解決方法:
#yum install epel-release -y (epel源可以提供socat程序包,其它yum沒有socat程序包)
#yum install socat -y
安裝后再次啟動(dòng)即可
故障3:有大量慢查詢導(dǎo)致cpu服務(wù)飆升,從而導(dǎo)致服務(wù)器宕機(jī)
問題原因:當(dāng)有一個(gè)慢查詢阻塞時(shí),后面所有的請求都會(huì)等待這個(gè)查詢完成才會(huì)執(zhí)行
解決辦法:
如果只有少量慢查詢,直接用kill 慢查詢ID號(hào),結(jié)束慢查詢即可;例:mysql>kill 32232
如果有大量慢查詢,只能關(guān)閉當(dāng)前數(shù)據(jù)庫服務(wù);
當(dāng)有大量的慢查詢時(shí),用/etc/init.d/mysql stop關(guān)閉時(shí)遇到的問題:
1.關(guān)閉特別慢,等了大概15分鐘后,關(guān)閉失敗,并且數(shù)據(jù)庫無法登陸;
2.此時(shí)采用kill -9 PID號(hào)的方式進(jìn)行強(qiáng)制關(guān)閉mysql進(jìn)程
3.此時(shí)用/etc/init.d/mysql start的方式啟動(dòng)時(shí),啟動(dòng)失敗
4.再此用/etc/init.d/mysql start的啟動(dòng)一次,即可成功啟動(dòng)
臨時(shí)解決辦法:
1.找到可以正常使用的數(shù)據(jù)庫
2.在前端的haproxy中,把不能正常訪問的數(shù)據(jù)庫移除;
3.等待出故障的數(shù)據(jù)恢復(fù)正常后,再從haproxy添加此主機(jī);
mariadb與mysql有什么區(qū)別?
區(qū)別一:
MariaDB不僅僅是Mysql的一個(gè)替代品,它的主要目的是創(chuàng)新和提高M(jìn)ysql的技術(shù)。
區(qū)別二:
MySQL之父Widenius先生離開了Sun之后,覺得依靠Sun/Oracle來發(fā)展MySQL,實(shí)在很不靠譜,于是決定另開分支,這個(gè)分支的名字叫做MariaDB。
MariaDB跟MySQL在絕大多數(shù)方面是兼容的,對(duì)于開發(fā)者來說,幾乎感覺不到任何不同。目前MariaDB是發(fā)展最快的MySQL分支版本,新版本發(fā)布速度已經(jīng)超過了Oracle官方的MySQL版本。
MariaDB 是一個(gè)采用Aria存儲(chǔ)引擎的MySQL分支版本,是由原來 MySQL 的作者M(jìn)ichael Widenius創(chuàng)辦的公司所開發(fā)的免費(fèi)開源的數(shù)據(jù)庫服務(wù)器。
這個(gè)項(xiàng)目的更多的代碼都改編于 MySQL 6.0,例如 “pool of threads”功能提供解決多數(shù)據(jù)連接問題。MariaDB 5.1.41 RC可以到這里下載,32位和64位已編譯Linux版本,還包括源代碼包。MariaDB基于GPL 2.0發(fā)布。
所以對(duì)于大部分的MySQL用戶來說,從現(xiàn)在主流的MySQL轉(zhuǎn)到MariaDB應(yīng)該是沒有什么難度的
區(qū)別三:
LAMP架構(gòu)盛極一時(shí),這離不開MySQL的免費(fèi)與易用,但是在Oracle收購了Sun之后,很多公司開始擔(dān)憂MySQL的開源前景,而最近Oracle進(jìn)一步閉源的舉措更是讓人難以安心,眾多互聯(lián)網(wǎng)公司紛紛開始尋求MySQL的替代方案。
不得不提的是Apple的遠(yuǎn)見,在Oracle收購Sun之初就宣布遷移到PostgreSQL。但PostgreSQL的設(shè)計(jì)初衷就不同于MySQL,并不是使用MySQL的大部分互聯(lián)網(wǎng)公司合適的解決方案。除了Apple,Google、Facebook、Twitter也大量使用了MySQL,紛紛發(fā)布了自己的MySQL分支/補(bǔ)丁集,并為不少公司所采用。同時(shí),MariaDB、Percona等MySQL分支也漸漸步入大眾的視野。
根據(jù)Wikipedia介紹,MariaDB是一個(gè)社區(qū)驅(qū)動(dòng)的、采用XtraDb存儲(chǔ)引擎的MySQL分支版本,由MySQL創(chuàng)始人Michael Widenius帶領(lǐng)開發(fā),遵循GPL v2.0協(xié)議開源。因?yàn)镸ySQL創(chuàng)始人的介入,MariaDB備受關(guān)注,Drupal、MediaWiki、phpMyAdmin、WordPress等眾多應(yīng)用都宣布支持MariaDB。
【更新日志】
MDEV-17475: 表定義緩存 的最大值現(xiàn)在是 2097152.Mariabackup 修復(fù): MDEV-18185, MDEV-18201, MDEV-18194, MDEV-18415, MDEV-18611
InnoDB ALTER TABLE 修復(fù): MDEV-17441, MDEV-18237, MDEV-17823, MDEV-18152, MDEV-17821, MDEV-18222, MDEV-18256, MDEV-18016, MDEV-18295
InnoDB 崩潰恢復(fù)修復(fù): MDEV-18183, MDEV-18279, MDEV-18349
Galera 崩潰恢復(fù)修復(fù): MDEV-15740
MDEV-18281: COM_RESET_CONNECTION 更改了連接編碼
binlog 修復(fù): MDEV-10963 & MDEV-10963
修復(fù)以下 安全漏洞:
CVE-2019-2510
CVE-2019-2537



































