前言
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