如何在Linux下編譯安裝MariaDB

導讀 MariaDB是MySQL的一個開源分支,主要是社區在維護,並且完全兼容MySQL,並且可以很方便的稱爲MySQL的替代

如何在Linux下編譯安裝MariaDB如何在Linux下編譯安裝MariaDB

MariaDB的誕生正是出自MySQL創始人Michael Widenius之手,命名的來源是他女兒的名字Maria,因爲之前他把MySQL賣給sun公司,而sun又被oracle收購,所以MySQL也屬於oracle所有,因此存在閉源的風險;而Michael Widenius開發的MariaDB作爲MySQL的開源分支,很好的避免的這個潛在的問題,所以MariaDB成爲了MySQL未來的替代,很多廠商也越來越關注MariaDB,並且MariaDB在很多方面的性能也要強過MySQL,像目前Windows桌面的php集成開發環境比如xampp還有linux和lnmp環境都採用MariaDB作爲默認的數據庫,所以從MySQL轉向MariaDB也是一種趨勢,以上說那麼多,使用MariaDB的第一步是要部署在操作系統,現在開始在Linux上用編譯源碼的方式來安裝MariaDB

準備物料

首先去MariaDB官網下載安裝包,首頁是:https://mariadb.org/

然後點擊Download進入下載頁,地址是:https://downloads.mariadb.org/

這裏點擊綠色按鈕下載最新穩定版10.1.18,進入選擇頁面:

因爲這裏是編譯安裝,所以暫時不針對某一系統的二進制包進行下載,這裏下載源碼包mariadb-10.1.18.tar.gz,下載之後上傳至服務器

安裝依賴

安裝MariaDB之前,首先要安裝cmake,另外爲了保證不缺依賴,使用yum或者rpm安裝依賴:readline-devel,zlib-devel,openssl-devel,libaio-devel並且readline-devel依賴於ncurses-devel,如果使用yum的話會自動將所需依賴安裝好,具體命令如下:

yum -y install readline-devel
yum -y install zlib-devel
yum -y install openssl-devel
yum -y install libaio-devel

這裏提前預定mysql的安裝目錄爲/usr/local/mysql並且數據目錄爲/data1/mysql,這裏要建立用戶和目錄,並且賦予mysql用戶權限,操作如下:

groupadd -r mysql
useradd -g mysql -s /sbin/nologin mysql
mkdir /usr/local/mysql
mkdir -p /data1/mysql
chown -R mysql:mysql /data1/mysql/

現在可以開始安裝了,解壓安裝包,並進入目錄:

tar -xvzf mariadb-10.1.18.tar.gz
cd mariadb-10.1.18/

編譯安裝

執行編譯安裝:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data1/mysql -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STPRAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

這裏說明一下:-DCMAKE_INSTALL_PREFIX是指定安裝的位置,這裏是/usr/local/mysql,-DMYSQL_DATADIR是指定MySQL的數據目錄,這裏是/data1/mysql,安裝目錄和數據目錄都可以自定義設置,-DSYSCONFDIR是指定配置文件所在的目錄,一般都是/etc ,具體的配置文件是/etc/my.cnf,-DWITHOUT_TOKUDB=1這個參數一般都要設置上,表示不安裝tokudb引擎,tokudb是MySQL中一款開源的存儲引擎,可以管理大量數據並且有一些新的特性,這些是Innodb所不具備的,這裏之所以不安裝,是因爲一般計算機默認是沒有Percona Server的,並且加載tokudb還要依賴jemalloc內存優化,一般開發中也是不用tokudb的,所以暫時屏蔽掉,否則在系統中找不到依賴會出現:
CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake:179 (message)這樣的錯誤,然後後面那些參數都是可選的,可以加也可以不加,最後的編碼建議設置一下,所以編譯指令也可以簡化成下面這樣:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data1/mysql -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

注意:如果萬一執行中有了錯誤,可以執行: rm -f CMakeCache.txt 刪除編譯緩存,讓指令重新執行,否則每次讀取這個文件,命令修改正確也是報錯

cmake沒問題,可以編譯並且安裝了: make && make install 時間有點長,耐心等待

執行完成也就是安裝完成了,現在執行 cd /usr/local/mysql/ 進入mysql安裝目錄分別執行下面命令:

chown -R mysql:mysql .
scripts/mysql_install_db --datadir=/data1/mysql --user=mysql
chown -R root .
cp support-files/mysql.server /etc/init.d/mysqld

系統配置

然後還可以將mysqld添加至系統服務:

chkconfig --add mysqld   # 添加至系統服務
chkconfig mysqld on    # 設置開機自啓動

現在如果啓動可能會報錯,原因是日誌目錄沒有建立,默認是/var/log/mariadb/mariadb.log,後來也可以修改,現在執行: mkdir/var/log/mariadb 建立日誌目錄,然後執行: /etc/init.d/mysqld start 或者 systemctl start mysqld.service 都可以啓動mysql服務

啓動服務後,還不能馬上進入mysql shell界面,原因是剛纔編譯時執行本地socket爲:/tmp/mysql.sock但是查看/etc/my.cnf中配置的位置卻是:/var/lib/mysql/mysql.sock,現在執行命令: ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 建立軟鏈接即可

爲了方便可以將mysql目錄添加到環境變量,現在可以執行 ./bin/mysql 直接進入MariaDB交互式界面了,默認root用戶密碼爲空:

到這裏MariaDB的編譯安裝過程就全部安裝完成了,至於後續的修改密碼,遠程用戶授權,sql操作等等與之前MySQL完全一致,所以就不在詳細敘述了

關於MariaDB二進制包的安裝,後續可能會繼續更新相關的文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章