本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可, 轉載請注明出處
之前一直在使用Mysql, 但是後來對比之後還是選擇了MariaDB, 現在想在自己的服務器和本子上安裝上MariaDB, 但是Ubuntu14.04源中的版本仍然是5.5, 想在本子上裝個新的體驗下, 網上看了寫教程, 都好老了, 很少有裝10的, 少數有的也都是直接沾了PPA源, 但是源從哪裡來的也是一頭霧水, 因此有了這篇博客, 水平有限, 歡迎交流指正.
MariaDB 數據庫管理系統是 MySQL 的一個分支, MariaDB努力想成為那些尋求專業的、健壯的、可擴展的、可靠的的 SQL 數據庫服務的理想選擇. 為了達成這個目標, MariaDB 基金會與開源社區的用戶和開發者以自由和開源軟件的精神共同開發著 MariaDB 數據庫管理系統, 並且以保證可靠性的前提下來開發新的功能的方式來發布這個軟件.
MariaDB數據庫管理系統主要由開源社區在維護, 采用GPL授權許可 MariaDB的目的是完全兼容MySQL, 包括API和命令行,使之能輕松成為MySQL的代替品。
在存儲引擎方面,使用XtraDB(英語:XtraDB)來代替MySQL的InnoDB. MariaDB基於事務的Maria存儲引擎, 替換了MySQL的MyISAM存儲引擎, 它使用了Percona的 XtraDB, InnoDB的變體
MariaDB由MySQL的創始人Michael Widenius(英語:Michael Widenius)主導開發,他早前曾以10億美元的價格,將自己創建的公司MySQL AB賣給了SUN, 此後, 隨著SUN被甲骨文收購, MySQL的所有權也落入Oracle的手中. MariaDB名稱來自Michael Widenius的女兒Maria的名字.
MySQL之父Widenius先生離開了Sun之後,覺得依靠Sun/Oracle來發展MySQL, 實在很不靠譜, 於是決定另開分支, 這個分支的名字叫做MariaDB.
MariaDB跟MySQL在絕大多數方面是兼容的,對於開發者來說,幾乎感覺不到任何不同. 目前MariaDB是發展最快的MySQL分支版本,新版本發布速度已經超過了Oracle官方的MySQL版本。
在Oracle控制下的MySQL開發, 有兩個主要問題 :
MySQL核心開發團隊是封閉的, 完全沒有Oracle之外的成員參加. 很多高手即使有心做貢獻, 也沒辦法做到.
MySQL新版本的發布速度, 在Oracle收購Sun之後大為減緩. Widenius有一個ppt, 用數據比較了收購之前和之後新版本的發布速度. 有很多bugfix和新的feature, 都沒有及時加入到發布版本之中.
以上這兩個問題, 導致了各個大公司, 都開發了自己定制的MySQL版本, 包括Facebook, Google, 阿裡巴巴等等.
MySQL是開源社區的資產, 任何個人/組織都無權據為己有. 為了依靠廣大MySQL社區的力量來更快速的發展MySQL, 另外開分支是必須的。
MariaDB默認的存儲引擎是Maria, 不是MyISAM. Maria可以支持事務, 但是默認情況下沒有打開事務支持, 因為事務支持對性能會有影響. 可以通過以下語句, 轉換為支持事務的Maria引擎.
ALTER TABLE `tablename` ENGINE=MARIA TRANSACTIONAL=1;
Ubuntu 14.04 的源中已經包含了 MariaDB 數據庫, 參見
http://packages.ubuntu.com/trusty/mariadb-server
因此可以直接安裝, 版本是 5.5.52
sudo apt-get install mariadb-server
如果想要安裝新的版本, 需要上官網下載其安裝包
下載地址 https://downloads.mariadb.org
vczhuam1xNS0vfjQ0LCy17ANCjxwPs7Sw8fRodTxcmVwb3NpdG9yeSBjb25maWd1cmF0aW9uIHRvb2wsILvy1d/Wsb3TvfjI6zwvcD4NCjxwPmh0dHBzOi8vZG93bmxvYWRzLm1hcmlhZGIub3JnL21hcmlhZGIvcmVwb3NpdG9yaWVzLyNtaXJyb3I9dHVuYTwvcD4NCjxwPtGh1PHO0sPHttTTprXEz7XNs7rNu7e+sywgztK1xLu3vrPKx1VidW50dSAxNC4wNCwg0aHU8bCy17AgTWFyaWFEQiAxMC4wLCDRodTxtcTKx8flu6q089GntcTUtDwvcD4NCjxwPjxpbWcgYWx0PQ=="添加ppa源" src="http://www.2cto.com/uploadfile/Collfiles/20161108/2016110809384829.png" title="\" />
然後系統會提示我們需要添加的源和安裝命令, 如下所示
添加源
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.0/ubuntu trusty main'
或者你可以手動的方式在 apt 源文件中寫入 mariadb 源的信息, 你可以直接將如下信息寫在 /etc/apt/sources.list, 或者如果你不想污染源的主配置文件, 可以在 /etc/apt/sources.list.d下, 創建名為MariaDB sources.list的源文件, 這個文件的名字可以隨意, 但是一般為了便於區分, 還是以軟件包的名字名為好, 比如我起的名字就是mariadb-ppa-trusty.list, 創建完成後將如下信息寫入
# MariaDB 10.0 repository list - created 2016-11-05 12:47 UTC # http://downloads.mariadb.org/mariadb/repositories/ deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.0/ubuntu trusty main deb-src http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.0/ubuntu trusty main
安裝mariadb數據庫
sudo apt-get update sudo apt-get install mariadb-server
參見 https://mariadb.com/kb/en/mariadb/installing-mariadb-deb-files/
方法1: 用SET PASSWORD命令
mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
方法2:用mysqladmin
mysqladmin -u root password "newpass"
如果root已經設置過密碼,采用如下方法
mysqladmin -u root password oldpass "newpass"
方法3: 用UPDATE直接編輯user表
mysql -u root mysql> use mysql; mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root'; mysql> FLUSH PRIVILEGES;
在丟失root密碼的時候,可以這樣
mysqld_safe --skip-grant-tables& mysql -u root mysql mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root'; mysql> FLUSH PRIVILEGES;啟動MariaDB
service mysql start確認 MariaDB 已經啟動
netstat -tulnp | grep mysql
或者
service mysql status登陸MariaDB
本地機器登陸
mysql -uroot -pyourpassword
如果是本機,那可以直接使用上面的命令登錄,當然,需要輸入密碼. 如果是遠程機器(與MariaDB 所處不同的機器),那麼可能需要如下的形式:
其中xxx.xxx.xxx.x 為MariaDB所在機器的IP 或者機器名
mysql -h xxx.xxx.xxx.x -P 3306 -uroot -pyourpassword簡單SQL測試
MariaDB [(none)]> use mysql MariaDB [mysql]> select count(*) from user; +----------+ | count(*) | +----------+ | 5 | +----------+ 1 row in set (0.00 sec)
想了解更多的關於MariaDB請訪問如下的網站 : MariaDB documentation
在 CentOS/RHEL/Scientific Linux 6 下安裝 LAMP (Apache with MariaDB and PHP)
MariaDB Proxy讀寫分離的實現
Linux下編譯安裝配置MariaDB數據庫的方法
CentOS系統使用yum安裝MariaDB數據庫
安裝MariaDB與MySQL並存
Ubuntu 上如何將 MySQL 5.5 數據庫遷移到 MariaDB 10
關於遠程訪問及防火牆設置請參考以下這篇文章
reference documents
是時候放棄MySQL的五大理由
CentOS6.5上安裝MariaDB
CentOS安裝並設置MariaDB