源码包编译安装mariaDB

前言

    MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,并且之前是完全开源,所以大受欢迎。但由于后面MySQL卖给了SUN,随后SUN被Oracle收购,虽然也有开源免费版本,但是很多功能都需要另外购买商业版本,导致现在MySQL使用份额逐渐减少。所以MariaDB就是因为这种原因诞生出来,成为数据库管理系统是MySQL的一个分支。

    先前已经使用二进制安装了mariaDB(详细请查看http://www.178linux.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.178linux.com/11679

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

相关推荐

  • 一切皆文件——Linux基本命令(1)

    1.一切皆文件 在dev下有很多硬件的文件 sr0是光驱 console是终端,也划为一个文件   2.查看终端   3.两个终端发信 首先右键选择Clone Session,新客隆了一个centos6 分别使用tty命令查看终端名。 分别为0和1 通过命令:echo “想发送的信息“ > 终端名 即可发送 在0中输入命令: 在1中…

    Linux干货 2017-07-13
  • Linux进程查看与管理命令总结

    Linux进程查看与管理命令总结 内核的功能: 进程管理 文件系统 网络功能 内存管理 驱动程序 安全功能 Process:运行中程序的一个副本。(存在生命周期) Linux内核存储进程信息的固定格式:task struct 多个任务的task struct组件的链表:task list 进程创建: init 父子关系 进程:都有其父进程创建 fork(),…

    Linux干货 2016-09-07
  • 8月3日课堂练习及课后作业

    课堂练习 1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为“Gentoo Distribution” useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo  2、创建下面的用户、组和组成员关系,名字为admi…

    Linux干货 2016-08-04
  • zabbix快速创建筛选(sql操作)

        公司由于大量业务调整,尤其是服务器功能和性能的转变,监控也跟随这变化,其中操作最为繁琐的当数zabbix筛选(相信各位从页面添加的都深感痛苦)于是有了本文。     本文采用的方法是sql操作(由于本人不会php等,无法写程序直接调用官方api,所以,嘿嘿,不解释,同时也希望各路大…

    Linux干货 2015-12-17
  • until 练习题

    一、用until实现下列作业 1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统。   2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出 3、编写脚本,求100以内所有正整数之和   4、编写脚本,通过p…

    Linux干货 2016-08-17
  • 网络N23期第一周(计算机的组成及功能及Linux的发行版等)

    一. 描述计算机的组成及功能 计算机由五大硬件组成:” 运算器 + 控制器 + 储存器 + 输入设备 + 输出设备” 。 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算…

    Linux干货 2016-09-22

评论列表(1条)

  • stanley
    stanley 2016-02-28 12:04

    又见螃蟹的文章,一如既往好,赞