源碼包編譯安裝mariaDB

前言

    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

(0)
螃蟹螃蟹
上一篇 2016-02-27 21:03
下一篇 2016-02-28 12:06

相關推薦

  • mariadb之再次演練

    架構圖如下: 1.按照架構圖所示,準備機器,做好時間同步,主機名解析 192.168.42.150 node1 [proxySQL keepalived]192.168.42.151 node2 [proxySQL keepalived]192.168.42.152 node3 [mysql-master wha]192.168.42.153 node4 […

    Linux干貨 2016-03-06
  • 用戶管理生產環境實踐案例

    關于用戶管理的命令回顧:visudo 用戶管理生產環境實踐案例 1. 關于用戶管理命令的回顧 2. 正文 關于用戶管理的命令回顧: <1> useradd命令 <2> 其他命令 (1)信息收集 (2)模擬用戶測試 <1> 問題現狀 <2> 需求分析 <3> 實現方針 <4>. 實施過程 …

    Linux干貨 2016-10-18
  • linux常用網絡配置

    網卡名稱:  網絡接口識別并命名相關的udev配置文件:    /etc/udev/rules.d/70-persistent-net.rules  卸載網卡驅動:    modprobe  -r e1000  裝載網卡驅動:    modprobe &nbs…

    Linux干貨 2016-09-06
  • Linux的正則表達式grep,egrep

    Linux的正則表達式grep,egrep 一、概念 正則表達式是對字符串操作的一種邏輯公式,用事先定義好的一組特殊字符,組成一個“規則字符集合”,根據用戶指定的文本模式對目標文件進行逐行搜索匹配,顯示能被模式匹配到的結果。 給定一個正則表達式和另一個目標字符串,我們可以從給定的字符串中通過匹配模型,過濾字符串中不想要的的字符串,得到目標字符串,減少工作量?!?/p>

    Linux干貨 2017-05-07
  • Linux-文件基本權限及特殊權限詳解

    Linux文件基本權限及特殊權限詳解 背景 Linux文件基本權限和特殊權限對于初學者很少煩惱,各種無法理解,所以在學到這一節時,將自己學到的以及自己的理解寫出來以檢查自己對這個部分的掌握情況。 什么是權限 在Linux里一切皆文件,所謂的權限就是用戶對文件(目錄也是以個文件)的操作范圍,對文件的操作包括讀、寫和執行,用戶對文件有不同的權限就能做相應的操作?!?/p>

    Linux干貨 2017-07-22
  • 用戶 組 和權限 以及權限的 分類

    關于文件的安全我們要從3A驗證 說起     1  Authentication:認證      2  Authorization:授權      3  Accouting|Audition:審計 由于系統文件的用戶太多為了便于管理 我們便把系統的用…

    系統運維 2016-08-04

評論列表(1條)

  • stanley
    stanley 2016-02-28 12:04

    又見螃蟹的文章,一如既往好,贊

欧美性久久久久