如何在Linux下編譯安裝MariaDB
MariaDB是MySQL的一個開源分支,主要是社群在維護,並且完全相容MySQL,並且可以很方便的稱為MySQL的替代 |
MariaDB的誕生正是出自MySQL創始人Michael Widenius之手,命名的來源是他女兒的名字Maria,因為之前他把MySQL賣給sun公司,而sun又被oracle收購,所以MySQL也屬於oracle所有,因此存在閉源的風險;而Michael Widenius開發的MariaDB作為MySQL的開源分支,很好的避免的這個潛在的問題,所以MariaDB成為了MySQL未來的替代,很多廠商也越來越關注MariaDB,並且MariaDB在很多方面的效能也要強過MySQL,像目前Windows桌面的php整合開發環境比如xampp還有 和lnmp環境都採用MariaDB作為預設的資料庫,所以從MySQL轉向MariaDB也是一種趨勢,以上說那麼多,使用MariaDB的第一步是要部署在作業系統,現在開始在Linux上用編譯原始碼的方式來安裝MariaDB
首先去MariaDB官網下載安裝包,首頁是:
然後點選Download進入下載頁,地址是:
這裡點選綠色按鈕下載最新穩定版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 介面,原因是剛才編譯時執行本地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二進位制包的安裝,後續可能會繼續更新相關的文件
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2687086/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- OS X編譯安裝Mariadb編譯
- CentOS 6.6下編譯安裝MariaDB-10.0.24CentOS編譯
- Linux下編譯安裝BOOSTLinux編譯
- centos6.5下編譯安裝mariadb-10.0.20CentOS編譯
- 如何在 Linux 上安裝 MariaDB 或 MySQLLinuxMySql
- 【MySQL安裝】Linux下安裝MySQL(預編譯)MySqlLinux編譯
- Linux Centos下編譯安裝RedisLinuxCentOS編譯Redis
- Linux 環境下編譯安裝 RedisLinux編譯Redis
- linux下編譯安裝perl(5.10.0)Linux編譯
- 如何在CentOS7安裝Node?(編譯安裝)CentOS編譯
- 如何在linux中從原始碼編譯安裝nodejs?Linux原始碼編譯NodeJS
- Linux下nginx編譯安裝教程和編譯引數詳解LinuxNginx編譯
- ffmpeg安裝之linux編譯安裝Linux編譯
- Linux編譯安裝NginxLinux編譯Nginx
- CentOS 下編譯安裝 NginxCentOS編譯Nginx
- CentOS 下編譯安裝 apacheCentOS編譯Apache
- windows下編譯安裝thriftWindows編譯
- ubuntu下 編譯安裝swftoolsUbuntu編譯
- Centos 下編譯安裝RedisCentOS編譯Redis
- LevelDB C++教程: Linux下編譯與安裝C++Linux編譯
- Linux下通過原始碼編譯安裝程式Linux原始碼編譯
- Linux CentOS6.5下編譯安裝MySQL 5.6LinuxCentOS編譯MySql
- linux下編譯安裝mysql5.5以上版本Linux編譯MySql
- 如何在 Fedora 30 Server 上安裝 LEMP(Linux、Nginx、MariaDB、PHP)ServerLinuxNginxPHP
- Centos下安裝mariaDB方法CentOS
- Linux 編譯 安裝 PHP 7.3.1Linux編譯PHP
- Linux gcc編譯器安裝LinuxGC編譯
- Linux 編譯安裝 PythonLinux編譯Python
- Linux下編譯安裝nginx1.8.1伺服器Linux編譯Nginx伺服器
- Linux下原始碼編譯方式安裝MySQL5.5Linux原始碼編譯MySql
- Windows下CMake編譯安裝OpenCVWindows編譯OpenCV
- 原始碼編譯安裝 httpd2.4+MariaDB5.5+php5.4(LAMP)原始碼編譯httpdPHPLAMP
- PHP Linux安裝擴充套件(編譯安裝)PHPLinux套件編譯
- Linux下編譯安裝Mysql 5.5的簡單步驟Linux編譯MySql
- linux源瑪包編譯安裝Linux編譯
- linux中原始碼編譯安裝Linux原始碼編譯
- CentOS 下編譯安裝 PHP7.2CentOS編譯PHP
- centos7下編譯安裝lnmpCentOS編譯LNMP