自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從MySQL遷移到MariaDB(CentOS)

數(shù)據(jù)庫 MySQL 數(shù)據(jù)庫運(yùn)維 MariaDB
MariaDB是一個(gè)采用Maria存儲(chǔ)引擎的MySQL分支版本,是由原來MySQL的作者M(jìn)ichael Widenius創(chuàng)辦的公司開發(fā)的免費(fèi)開源的數(shù)據(jù)庫服務(wù)器。Red Hat企業(yè)發(fā)行版RHEL 7將用MariaDB替代MySQL,一旦RHEL完成切換,基于RHEL的社區(qū)版 CentOS 將會(huì)緊跟著作出改變。所以呢,使用CentOS系統(tǒng)的這個(gè)VPS或遲或早都是要切換到MariaDB的,大勢(shì)所趨啊。

下面先摘錄一點(diǎn)背景介紹,然后是我在 CentOS 6.4 上從 MySQL 5.5.31 遷移至 MariaDB 5.5.31 的操作記錄。最后是我后來發(fā)現(xiàn)一個(gè)較好的遷移方法。

1. 背景介紹

MySQL是世界上最流行的開源關(guān)系數(shù)據(jù)庫。2008 年,Sun 收購 MySQL。然后 2010 年,甲骨文又收購了 Sun,于是 MySQL 落入了甲骨文(Oracle)手中。Oracle 與開源社區(qū)關(guān)系的一直不太好,甚至 MySQL 也被弄成了社區(qū)版和企業(yè)版,不能免費(fèi)商業(yè)使用;MySQL 企業(yè)版的新功能不公開源代碼,這樣讓用戶很不爽。MariaDB 則沒有這方面的問題。與 MySQL 相比,MariaDB 的優(yōu)勢(shì)在于:

可免費(fèi)商業(yè)使用(MySQL 則有社區(qū)版和企業(yè)版之分,拜 Oracle 所賜)

Maria 存儲(chǔ)引擎

PBXT 存儲(chǔ)引擎

XtraDB 存儲(chǔ)引擎

FederatedX 存儲(chǔ)引擎

更快的復(fù)制查詢處理

線程池

運(yùn)行速度更快

更多的擴(kuò)展功能模塊

支持 Unicode 排序

于是我決定先在虛擬機(jī)上看看如何由 MySQL 遷移到 MariaDB,雖然難以預(yù)料的是,不知道 Michael Widenius 會(huì)不會(huì)在什么時(shí)候又將 MariaDB 賣給哪家大公司。

原來 MariaDB 的設(shè)計(jì)初衷之一就是完全兼容 MySQL,包括 API 和客戶端協(xié)議,使之能輕松成為 MySQL 的代替品,所以由 MySQL 遷移到 MariaDB 基本上可以稱之為“升級(jí)”,就好像軟件升級(jí)版本一樣。MariaDB 的技術(shù)文檔上是這樣寫的

如果是相同的基礎(chǔ)版本(如 5.5),可以直接卸載 MySQL 然后安裝 MariaDB,這樣就可以用了。甚至不需要備份然后還原數(shù)據(jù)庫。當(dāng)然,保險(xiǎn)起見,升級(jí)前將所有的數(shù)據(jù)庫都備份一下還是非常有必要的,以防萬一。

如果 MariaDB 的主版本高,在經(jīng)過上面的卸載 MySQL 再安裝 MariaDB 操作之后,需要使用 mysql_upgrade 升級(jí)一下。是的,甚至連命令行都與使用 MySQL 的時(shí)候一樣。

所有原先的客戶端和連接器(PHP、Perl、Python、Java 等)都不需要做任何改變就能正常工作,因?yàn)?MariaDB 與 MySQL 使用的是相同的客戶端協(xié)議,并且客戶端庫文件也是二進(jìn)制兼容的。

2. 遷移操作記錄(下面的 3 的方法更好)

這個(gè) VPS 安裝的是 CentOS,目前版本是 6.4,MySQL 版本是 5.5.31(使用了 remi 源),虛擬機(jī)的配置與此極度相似。剛開始不太了解,執(zhí)行了這個(gè)比較傻的操作方式。

A. 先配置 MARIADB 的安裝源。

目前 MariaDB 的主版本是 5.5,我的 CentOS 是 32 位的,將下面的安裝源配置保存為MariaDB.repo,上傳到服務(wù)器的 /etc/yum.repos.d 文件夾:

 

  1. [mariadb] 
  2. name = MariaDB 
  3. enable=1 
  4. priority=3 
  5. baseurl = http://yum.mariadb.org/5.5/centos6-x86 
  6. gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
  7. gpgcheck=1 

其中 priority=3 是針對(duì) YUM 的 PRIORITIES 優(yōu)先級(jí)插件的。

B. 卸載原來的 MYSQL 及相關(guān)包。

 

  1. # yum remove mysql* 

上面用 * 來匹配刪除所有 mysql 數(shù)據(jù)包(包括因包依賴而刪除的別的包,如 postfix)。因?yàn)橹苯影惭b的時(shí)候會(huì)出現(xiàn)沖突,例如:

file /usr/share/mysql/ukrainian/errmsg.sys from install of MariaDB-server-5.5.31-1.i686 conflicts with file from package mysql-libs-5.5.32-1.el6.remi.i686

嗯,好像因?yàn)閷?php-mysql 也給刪除了(實(shí)際上這個(gè)不該刪除的),所以 phpMyAdmin 也因?yàn)橐蕾囮P(guān)系而被刪除了,我沒仔細(xì)看。

所以最好不要用通配符 *,而是選擇性刪除幾個(gè)主要的,

 

  1. # yum remove mysql mysql-server mysql-libs 

但是這個(gè)我沒有再測(cè)試,因?yàn)楹竺嬗懈玫姆椒ā?/p>

C. 然后安裝 MARIADB 及相應(yīng) PHP 擴(kuò)展。

也是指定幾個(gè)主要的安裝包,剩下的讓 yum 自己進(jìn)行依賴關(guān)系檢查。

 

  1. # yum install MariaDB-server  MariaDB-client php-mysql 

或者不安裝 MariaDB-server 而改為具有同步多主群集特性(synchronous multi-master cluster)的 MariaDB Galera Cluster:

 

  1. # yum install MariaDB-Galera-server MariaDB-client galera 

這里比較搞笑的是,沒注意前面把 php-mysql 給卸載了,結(jié)果運(yùn)行數(shù)據(jù)庫之后訪問 WordPress,結(jié)果遭遇下面的錯(cuò)誤:

Your PHP installation appears to be missing the MySQL extension which is required by WordPress.

D. 完成,修補(bǔ)

不管版本是否升級(jí)了,執(zhí)行一下數(shù)據(jù)庫升級(jí)指令總沒有壞處:

 

  1. # mysql_upgrade -p 

看看數(shù)據(jù)庫版本是不是升級(jí)了:

 

  1. # mysql -u root -p -e 'show global variables like "version";' 
  2. Enter password: 
  3. +---------------+----------------+ 
  4. | Variable_name | Value | 
  5. +---------------+----------------+ 
  6. | version | 5.5.31-MariaDB | 
  7. +---------------+----------------+ 

將 MariaDB 加入隨系統(tǒng)自啟動(dòng)列表,

 

  1. # chkconfig --levels 345 mysql on 

嗯,以前 MySQL 的時(shí)候是 mysqld,現(xiàn)在是 mysql,就差了一個(gè)字母 d。

啟動(dòng)它,

 

  1. # service mysql start 

這個(gè)時(shí)候服務(wù)器上的網(wǎng)站應(yīng)該已經(jīng)可以正常工作了,訪問數(shù)據(jù)庫沒有問題。

如果有必要,安裝完 MariaDB 之后可以重新安裝 postfix。如果發(fā)現(xiàn) phpMyAdmin 提示無訪問權(quán)限了,那就是被卸載了,需要重新安裝和配置 phpMyAdmin。

另外,因?yàn)橹斑M(jìn)行了卸載操作,所以原來的 MySQL 和 phpMyAdmin 的配置文件都被清除了,也需要重新配置。特別是 MySQL 的配置文件 /etc/my.cnf,因?yàn)?MariaDB 雖然創(chuàng)建了一個(gè)my.cnf.d 文件夾來存儲(chǔ)自己的配置文件,但是它會(huì)首先加載 my.cnf,且原來 MySQL 的配置的 [mysqld] 那一節(jié)的內(nèi)容還是有效的。

3. 較好的升級(jí)方法

還是在上面介紹的系統(tǒng)配置下,先添加 MariaDB 安裝源,然后直接執(zhí)行系統(tǒng)升級(jí),

# yum update --skip-broken

MariaDB 相關(guān)安裝包會(huì)被安裝,不需要的 MySQL 包將被卸載,并且升級(jí)之后不需要對(duì)系統(tǒng)進(jìn)行修補(bǔ)了??纯摧敵龅那懊嬉徊糠郑?/p>

 

  1. ============================================================================================================== 
  2. Package Arch Version Repository Size 
  3. ============================================================================================================== 
  4. Installing: 
  5. MariaDB-Galera-server i686 5.5.29-1 mariadb 19 M 
  6.      replacing mysql.i686 5.5.21-1.el6.remi 
  7.      replacing mysql-server.i686 5.5.21-1.el6.remi 
  8. MariaDB-server i686 5.5.31-1 mariadb 32 M 
  9.      replacing mysql-server.i686 5.5.21-1.el6.remi 
  10. MariaDB-shared i686 5.5.31-1 mariadb 1.0 M 
  11.      replacing mysql-libs.i686 5.5.21-1.el6.remi 
  12. kernel i686 2.6.32-358.11.1.el6 updates 24 M 
  13. libjpeg-turbo i686 1.2.1-1.el6 base 176 k 
  14. replacing libjpeg.i686 6b-46.el6 
  15. Updating: 
  16. ......... 

到這里才感覺到 MariaDB 的設(shè)計(jì)思想那個(gè)無縫替代 MySQL 不是噱頭,而是實(shí)實(shí)在在的技術(shù)。于是我也就不急著給 VPS 升級(jí)到 MariaDB 了,反正過不了多久 CentOS 就會(huì)采用  MariaDB,到時(shí)候再自然而然地遷移吧。

原文鏈接:http://cnzhx.net/blog/mysql-migrate-to-mariadb/

責(zé)任編輯:彭凡 來源: 水景一頁
相關(guān)推薦

2013-05-03 09:49:38

MySQLMariaDB

2013-04-25 09:53:52

MariaDB

2015-09-14 14:49:39

MySQLMariaDBLinux

2013-04-25 10:43:33

維基百科MySQLMariaDB

2017-10-20 08:45:15

數(shù)據(jù)庫MongoDBMySQL

2010-09-29 11:06:21

活動(dòng)目錄OpenLDAP

2021-07-05 08:00:00

LinuxCentOS腳本

2012-05-21 10:23:36

2010-07-20 09:48:33

2013-09-17 09:49:38

大數(shù)據(jù)NoSQLMariaDB

2016-10-26 16:44:44

WatchfinderAWS云計(jì)算

2011-06-24 10:10:35

SVN

2020-07-27 11:35:26

GitHub代碼開發(fā)者

2021-11-29 09:44:03

UmiJSVite前端

2022-06-06 07:24:09

Caddy開源Ubuntu

2009-02-06 10:32:00

UnixLinux服務(wù)器

2011-04-25 09:35:31

TwitterJava

2016-11-11 00:00:16

MySQLOracle數(shù)據(jù)

2012-02-24 09:34:48

SVNGit

2020-01-06 12:50:50

Windows 7遷移Windows 10
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)