源碼包編譯安裝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
下一篇 2016-02-28

相關推薦

  • Linux網絡屬性管理

    Linux網絡屬性管理 linux的網絡配置方法有多種,而且隨發行版及版本而略微不同。我目前的測試環境為CentOS6和CentOS7。 常用的網絡配置命令或方法有:ifconfig,route,netstat,ip,ss,nmcli,配置文件。 首先:命令方法介紹 一、命令簡介 ifconfig:是個比較傳統的命令,可以配置網絡接口的啟用及關閉,IP地址等…

    系統運維 2016-05-29
  • Nginx反向代理原理、壓測及模塊功能的實現

    基本架設 反向代理模塊 緩存功能的實現 修改報文首部IP 向后端轉發時是否讓客戶端知道 在http中定義緩存基本屬性 定義當后端服務宕機時過期緩存生效條件 報文首部模塊,自定義報文首部 負載均衡模塊1 負載均衡模塊2 負載均衡模塊的常用調度方法1 負載均衡常用調度方法2 與http想等的動態負載均衡模塊1 與http想等的動態負載均衡模塊2 這里讓我們對之前…

    2016-10-30
  • 2016/10/14日作業

    ##操作類: 1、設置自己的終端提示符,要求字符終端登錄時: a> 需要帶顏色 b> 需要顯示當前執行到了第幾條命令 c> 顯示當前登錄終端,主機名和當前時間 a>export  PS1='[\e[034m\u @\h \w \#]\$ \e[0m'  b>export PS1=&#039…

    Linux干貨 2016-10-20
  • N26 第六周博客作業

    請詳細總結 vim 編輯器的使用并完成以下練習題 ## VIM 使用總結 首先 VIM 是 VI IMproved 的縮寫,是 vi 編輯器的增強型。它與 sed awk 并稱為文本處理三劍客。其主要作者 Bram Moolenaar 也是個非常有愛心的人,在 vim 的[官網](http://www.vim.org/) 和 在命令行中直接輸入 vim 的命…

    Linux干貨 2017-03-11
  • N23-第五周博客作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell。 [root@localhost ~]# cat /etc/passwd | egrep "^root\>" | cut -d: -f1,7 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hell…

    Linux干貨 2016-12-05
  • LINUX命令歷史

    LINUX命令歷史 LINUX的命令歷史是什么? linux的命令歷史的作用是,記錄執行過的命令。如果你經常使用 Linux 命令行,那么使用 命令歷史可以有效地提升你的效率。history(管理歷史命令)語法:[root@localhost]#history(選項)(參數)選項:n:n為數字,要列出最近的 n 筆命令列表-c(清空所有歷史命令)-d (刪除…

    2017-09-14

評論列表(1條)

  • stanley
    stanley 2016-02-28 12:04

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

欧美性久久久久