Linux 環(huán)境下快速部署 MySQL 的替代方案
原創(chuàng)【51CTO專(zhuān)稿】一 MySQL 代替者M(jìn)ariaDB 簡(jiǎn)介
MariaDB名稱(chēng)來(lái)自Michael Widenius的女兒Maria的名字。圖1 是MariaDB 的LOGO:
圖1 MariaDB 的LOGO
MariaDB 下載:https://downloads.mariadb.org/
MariaDB 網(wǎng)站:http://www.mariadb.org/
MariaDB***穩(wěn)定版為:MariaDB 5.5。上一個(gè)穩(wěn)定版為:MariaDB 5.3。
MariaDB 是一個(gè)采用 Maria 存儲(chǔ)引擎的 MySQL 分支版本,與 MySQL 相比較,MariaDB 更強(qiáng)的地方在于,二者支持的不同的引擎。通常可以通過(guò)show engines 命令來(lái)查看兩種數(shù)據(jù)庫(kù)服務(wù)器 支持的不同的引擎。 Support列的信息包括YES,NO 和 DEFAULT。
圖2 和圖3 分別是MySQL 5.5 和MariaDB 5.5 引擎列表:
圖2 MySQL 5.5引擎列表
圖3 MariaDB 5.5 引擎列表
對(duì)比二者 Sphinx全文搜索引擎是目前當(dāng)前市場(chǎng)上最炙手可熱的開(kāi)源搜索引擎,MariaDB利用SphinxSE作為存儲(chǔ)引擎。另外MariaDB基于事務(wù)的Maria存儲(chǔ)引擎,替換了MySQL的MyISAM存儲(chǔ)引擎,它使用了Percona的 XtraDB,是InnoDB的變體。MariaDB默認(rèn)的存儲(chǔ)引擎是Aria,不是MyISAM。Aria可以支持事務(wù),但是默認(rèn)情況下沒(méi)有打開(kāi)事務(wù)支持,因?yàn)槭聞?wù)支持對(duì)性能會(huì)有影響。PBXT 是 MariaDB 附帶的一種存儲(chǔ)引擎,PBXT 在 MariaDB 的 5.1/5.2/5.3 版本中存在,但從 MariaDB 5.5 開(kāi)始就不再提供 PBXT 存儲(chǔ)引擎,而且以后也將不再提供。另外MariaDB已經(jīng)宣布了Cassandra存儲(chǔ)引擎的一個(gè)預(yù)覽版本。該插件允許MariaDB通過(guò)標(biāo)準(zhǔn)SQL語(yǔ)法使用Cassandra集群。
MariaDB跟MySQL在絕大多數(shù)方面是兼容的,對(duì)于開(kāi)發(fā)者來(lái)說(shuō),幾乎感覺(jué)不到任何不同。目前MariaDB是發(fā)展最快的MySQL分支版本 。#p#
二 主要 Linux 發(fā)行版本安裝MariaDB
本文主要介紹兩大主要Linux 發(fā)行版本類(lèi)別:
- 使用rpm 軟件包格式的RHEL/CentOS/Fedora
- 使用deb軟件包格式的Debian /Ubuntu 。
1、使用rpm 軟件包格式的RHEL/CentOS/Fedora
(1)這里以Fedora 19為例
其中使用Fedora 19 是最簡(jiǎn)單的,因?yàn)檫@個(gè)***Linux 發(fā)行版本可以直接使用yum 軟件包工具安裝
a、安裝軟件包
- #yum -y install mariadb-server mariadb
- #systemctl start mysqld.service
- #systemctl enable mysqld.service
- ln -s '/lib/systemd/system/mysqld.service' '/etc/systemd/system/multi-user.target.wants/mysqld.service'
2、數(shù)據(jù)庫(kù)的基本操作
***連接MariaDB如圖4:
- #mysql -u root
圖4***連接MariaDB
可以看到mariadb 版本號(hào)是5.5.31-MariaDB MariaDB Server,其他基本操作(和Mysql操作相同)。
查看用戶(hù)信息
使用內(nèi)部命令:select user,host,password from mysql.user; 如圖5:
圖5查看用戶(hù)信息
設(shè)置root用戶(hù)密碼
- MariaDB [(none)]> set password for root@localhost=password('password');
- Query OK, 0 rows affected (0.00 sec)
- # set root password
- MariaDB [(none)]> set password for root@'127.0.0.1'=password('password');
- Query OK, 0 rows affected (0.00 sec)
刪除一些數(shù)據(jù)庫(kù)用戶(hù)(ipv6 和 匿名用戶(hù))
- MariaDB [(none)]> delete from mysql.user where user='root' and host='::1';
- Query OK, 1 rows affected (0.00 sec)
- MariaDB [(none)]> delete from mysql.user where user='';
- Query OK, 2 rows affected (0.00 sec)
退出后使用root密碼重新登錄
- #mysql -u root -p
- Enter password:
- # MariaDB root password you set
- Welcome to the MariaDB monitor. Commands end with ; or \g.
- Your MariaDB connection id is 3
- Server version: 5.5.31-MariaDB MariaDB Server
- Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- MariaDB [(none)]>
#p#
3、安裝MariaDB客戶(hù)端工具
MariaDB的API和協(xié)議兼容MySQL,另外又添加了一些功能,以支持本地的非阻塞操作和進(jìn)度報(bào)告。這意味著,所有使用MySQL的連接器、庫(kù)和應(yīng)用程序也將會(huì)在MariaDB下工作。如下是支持MariaDB的工具客戶(hù)端:
- DBEdit 一個(gè)免費(fèi)的MariaDB數(shù)據(jù)庫(kù)和其他數(shù)據(jù)庫(kù)管理應(yīng)用程序。
- Navicat 一系列Windows、Mac OS X、Linux下專(zhuān)有數(shù)據(jù)庫(kù)管理應(yīng)用程序。
- HeidiSQL 一個(gè)Windows上自由和開(kāi)放源碼的MySQL客戶(hù)端。它支持MariaDB的5.2.7版本和以后的版本。
- phpMyAdmin 一個(gè)基于網(wǎng)絡(luò)的MySQL數(shù)據(jù)庫(kù)管理應(yīng)用程序 。
下面介紹phpMyAdmin ,安裝使用phpMyAdmin要配置完成Apache 和 php 相關(guān)軟件包:
- # yum -y install httpd php php-mbstring php-pear
- # yum -y install phpMyAdmin php-mysql php-mcrypt
修改配置文件添加ip地址范圍:
- vi /etc/httpd/conf.d/phpMyAdmin.conf
- # line 15: add IP address you permit
- Require ip 127.0.0.1 10.0.0.0/24
- # line 32: add IP address you permit
- Require ip 127.0.0.1 10.0.0.0/24
- #systemctl restart httpd.service
然后使用瀏覽器訪問(wèn)即可,如圖6:
圖6 phpMyAdmin管理mariadb數(shù)據(jù)庫(kù)
(2)其他使用rpm軟件包的發(fā)行版本
添加文件:/etc/yum.repos.d/MariaDB.repo
CentOS 6 64位發(fā)行版本的/etc/yum.repos.d/MariaDB.repo文件內(nèi)容:
- [mariadb]
- name = MariaDB
- baseurl = http://yum.mariadb.org/5.5/centos6-amd64
- gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
- gpgcheck=1
安裝命令
- #yum -y install MariaDB-server MariaDB-client
- # service mysql start
- # chkconfig mysql on
(3)其他版本安裝mariadb(以Ubuntu 12.04 為例子)
首先從 MariaDB 下載頁(yè)面 選擇貼近你的版本的資料庫(kù)鏡像,然后下載頁(yè)面會(huì)在底部顯示鏡像信息,將這些信息添加到 /etc/apt/source.list
- deb http://ftp.heanet.ie/mirrors/mariadb/repo/5.5/ubuntu lucid main
- deb-src http://ftp.heanet.ie/mirrors/mariadb/repo/5.5/ubuntu lucid main
2. 接下來(lái)需要導(dǎo)入簽名密鑰:
- # apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
3. 更新
- #apt-get update
4. 安裝
- #apt-get install mariadb-server-5.5
安裝過(guò)程中要輸入mariadb的root密碼并且確認(rèn)一次如圖7:
圖7 輸入mariadb的root密碼并且確認(rèn)一次
#p#
三 Mariadb的root密碼的重新設(shè)置
首先停止數(shù)據(jù)庫(kù)服務(wù)器進(jìn)程:
- # service mysql stop
安全模式啟動(dòng):
- # mysqld_safe --skip-grant-tables &
登錄MariaDb server:
- # mysql -u root
- Welcome to the MariaDB monitor. Commands end with ; or \g.
- Your MariaDB connection id is 1
- Server version: 5.5.32-MariaDB MariaDB Server
- Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
設(shè)置密碼:
- MariaDB [(none)]> update mysql.user set password=PASSWORD("newpassword") where User='root';
- Query OK, 4 rows affected (0.00 sec)
- Rows matched: 4 Changed: 4 Warnings: 0
授權(quán)后退出:
- MariaDB [(none)]> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
- MariaDB [(none)]> exit;
- Bye
重新啟動(dòng)數(shù)據(jù)庫(kù)進(jìn)程:
- # service mysql restart
使用新密碼登錄:
- # mysql -u root -p
- Enter password:
- Welcome to the MariaDB monitor. Commands end with ; or \g.
- Your MariaDB connection id is 1
- Server version: 5.5.32-MariaDB MariaDB Server
- Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
總結(jié):
MariaDB 基本上名門(mén)之后,加上MySQL創(chuàng)始人Monty的實(shí)力和號(hào)召力,是作為MySQL一個(gè)非常好的替代品,前途發(fā)展無(wú)限,值得我們嘗試使用。二者的常用工具,連接程序都可以如常運(yùn)作。你也不需要導(dǎo)出和匯入數(shù)據(jù)。格式與文件名都是相同的。