前言
MySQL是一個關系型數據庫管理系統,是最流行的關系型數據庫管理系統,由于其體積小、速度快、總體擁有成本低,并且之前是完全開源,所以大受歡迎。但由于后面MySQL賣給了SUN,隨后SUN被Oracle收購,雖然也有開源免費版本,但是很多功能都需要另外購買商業版本,導致現在MySQL使用份額逐漸減少。所以MariaDB就是因為這種原因誕生出來,成為數據庫管理系統是MySQL的一個分支。
先前已經使用二進制安裝了mariaDB(詳細請查看http://www.www58058.com/8787),下面將介紹如何使用源碼包編譯安裝mariaDB 10。
源代碼編譯安裝mariaDB
一、安裝前需要注意的地方
mysql自從5.5之后,包括,編譯安裝項目代碼管理不在使用make,而是用的是cmake。所以我們要編譯安裝mariadb,第一步就需要準備開發環境,并且安裝cmake(cmake默認是不安裝)
二、編譯前準備工作
2.1、將mariadb-10.0.12.tar.gz拷貝到服務器
2.2、安裝開發庫
[root@localhost yum.repos.d]# yum -y groupinstall Development tools
2.3、準備好epel的yum源
[root@localhost ~]# vim /etc/yum.repos.d/epel.repo [epel] name=epel mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-$releasever&arch=$basearch enabled=1 gpgcheck=0
三、準備依賴庫及相關程序包
3.1、安裝Judy開發庫(Judy-devel)
備注:編譯其中一項OQGraph需要依賴此開發包,安裝Judy-devel的yum源是使用epel源,所以先配置好epel源
[root@localhost mariadb-10.0.12]# yum install Judy-devel –y
3.2、安裝cmake
[root@localhost yum.repos.d]# yum install cmake -y
3.3、安裝ncurses開發包
[root@localhost mariadb-10.0.12]# yum install ncurses-devel –y
3.4、安裝libxml2開發包
后續編譯需要用到
[root@localhost mariadb-10.0.12]# yum install libxml2-devel -y
3.5、安裝boost開發包
[root@localhost ~]# yum install boost-devel –y
3.6、安裝openssl-devel
[root@localhost ~]# yum install openssl-devel
四、編譯mariadb前準備工作
4.1、解壓mariadb-10.0.12
[root@localhost ~]# tar xf mariadb-10.0.12.tar.gz
4.2、添加用戶
[root@localhost ~]# useradd -r mysql
4.3、創建數據目錄
[root@localhost ~]# mkdir /mydata/data –pv [root@localhost ~]# chown -R mysql.mysql /mydata/data/
4.4、查看幫助文檔
[root@localhost ~]# cd mariadb-10.0.12 [root@localhost mariadb-10.0.12]# cmake . -LH
五、編譯安裝mariadb
5.1、編譯安裝,并指定對應的參數設置
[root@localhost ~]# cd mariadb-10.0.12 [root@localhost mariadb-10.0.12]# cmake -DBoost_NO_BOOST_CMAKE=TRUE [root@localhost mariadb-10.0.12]# cmake . -DMYSQL_DATADIR=/mydata/data -DWITH_SSL=system -DWITH_SPHINX_STORAGE_ENGINE=1 # -DMYSQL_DATADIR=/mydata/data 指定存放數據目錄路徑 # -DWITH_SSL=system 指定支持ssl連接 # -DWITH_SPHINX_STORAGE_ENGINE=1 指定支持SPHINX存儲引擎
[root@localhost mariadb-10.0.12]# make [root@localhost mariadb-10.0.12]# make install
備注如果編譯前依賴庫或開發庫未安裝,請先安裝完成,然后刪除安裝包,重新解壓在執行編譯操作。
5.2、創建生成服務文件
[root@localhost mariadb-10.0.12]# cd /usr/local/mysql/ [root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld [root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
5.3、拷貝并修改服務配置文件
[root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf cp: overwrite `/etc/my.cnf'? y [root@localhost mysql]# vim /etc/my.cnf [mysqld] #在此組字段下添加 datadir = /mydata/data
5.4、初始化mysql
[root@localhost mysql]# pwd /usr/local/mysql [root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
六、Mariadb安裝完成后設置
6.1、啟動服務了
[root@localhost mysql]# service mysqld start
6.2、設置開機自動啟動
[root@localhost ~]# chkconfig mysqld on
6.3、將mysql命令添加到PATH變量中
[root@localhost ~]# vim /etc/profile.d/mysql.sh export PATH=/usr/local/mysql/bin:$PATH
6.4、讓文件里的配置的內容即可生效
[root@localhost ~]# . /etc/profile.d/mysql.sh
七、使用客戶端測試
[root@localhost local]# /usr/local/mysql/bin/mysql MariaDB [(none)]> SHOW ENGINES; #查看支持的存儲引擎
備注:如果先前沒有將mysql命令添加到PATH變量里,可以使用usr/local/mysql/bin/mysql 打開mysql命令
至此源碼包編譯安裝mariaDB完成。
編譯安裝時曾經出現的問題匯總
1、執行cmake時,提示 “cmake error_C_COMPILER”,以下是部分報錯信息
CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
解決方法
安裝開發工具Development tools
[root@localhost mariadb-10.0.12]# yum groupinstall "Development tools"
2、編譯時出錯,報“CMake Error at cmake/ssl.cmake”以下是部分報錯信息
CMake Error at cmake/ssl.cmake:162 (FILE): file STRINGS file "/root/mariadb-10.0.12/OPENSSL_INCLUDE_DIR-NOTFOUND/openssl/opensslv.h" cannot be read.
解決方法
這里是因為,我們在多次運行cmake有個文件我們需要刪除,刪除當前目錄下CMakeCache.txt文件并重新編譯,再次運行cmake命令就會正常!
[root@localhost mariadb-10.0.12]# rm -f CMakeCache.txt [root@localhost mariadb-10.0.12]# yum install ncurses-devel –y
3、編譯時報錯“Could NOT find Boost”,以下是部分報錯信息
-- Configuring OQGraph -- Could NOT find Boost -- Boost not found. OQGraph will not be compiled
解決方法
安裝boost開發包即可
[root@localhost ~]# yum install boost-devel -y
4、編譯時報錯“CMake Error at /usr/lib64/boost/Boost.cmake”,以下是部分報錯信息
CMake Error at /usr/lib64/boost/Boost.cmake:536 (message): The imported target "boost_date_time-static" references the file "/usr/lib64/lib64/libboost_date_time.a" but this file does not exist. Possible reasons include:
解決辦法
在mariadb目錄下執行下面的命令
[root@localhost mariadb-10.0.12]#cmake -DBoost_NO_BOOST_CMAKE=TRUE
5、在編譯時出現“Could NOT find LibXml2”,以下是部分報錯信息
-- CONNECT: GCC: Some warnings disabled -- Could NOT find LibXml2 (missing: LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR)
解決辦法
安裝libxml2-devel開發包
[root@localhost mariadb-10.0.12]# yum install libxml2-devel
6、編譯安裝報錯“Judy not found. OQGraph will not be compiled”
解決辦法
#首先先添加epel源 [root@localhost ~]# vim /etc/yum.repos.d/epel.repo [epel] name=epel mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-$releasever&arch=$basearch enabled=1 gpgcheck=0 #安裝Judy-devel開發包 [root@localhost mariadb-10.0.12]# yum install Judy-devel
原創文章,作者:螃蟹,如若轉載,請注明出處:http://www.www58058.com/11679
又見螃蟹的文章,一如既往好,贊