源码编译安装mariadb环境,使用centos 6.X系统。使用centos7.X系统会有一些命令不同,整个过程都是一样。

1:编译安装mariadb先使用yum安装解决mariadb的依赖库

yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boostdevel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssldevel libevent-devel libaio-devel

2:做准备用户和数据目录

创建一个mysql用户,并指定家目录为数据存储的位置

useradd –r –s /sbin/nologin –d /data/mysql/ mysql

创建存储目录,建议使用lvm ,这样方便以后扩建

mkdir -pv  /data/mysql

修改目录的权限

chown mysql.mysql /data/mysql

解压mariadb源码文件

tar xvf mariadb-10.2.18.tar.gz

3: cmake 编译安装

cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译

cd mariadb-10.2.18/

使用cmake编译 :

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/ -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITHOUT_MROONGA_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system \

-DWITH_LIBWRAP=0 -DENABLED_LOCAL_INFILE=1 -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

注:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql       (指定mariadb 安装的路径)

-DMYSQL_DATADIR=/data/mysql/                  (指定mariadb的数据存放路径

-DSYSCONFDIR=/etc                             (指定mairiadb的配置文件,my.cnf的路径

-DMYSQL_USER=mysql            (指定用户为mysql)

-DWITH_INNOBASE_STORAGE_ENGINE=1              (编译INNODB引擎)

-DWITH_ARCHIVE_STORAGE_ENGINE=1               (编译ARCHIVE引擎)

-DWITH_BLACKHOLE_STORAGE_ENGINE=1             (编译BLACKHOLE引擎)

-DWITH_PARTITION_STORAGE_ENGINE=1             (编译PARTITION引擎)

-DWITHOUT_MROONGA_STORAGE_ENGINE=1            (不编译MROONGA引擎)

-DWITH_DEBUG=0                                (将Debug Sync工具编译到服务器中)

-DWITH_READLINE=1                             

-DWITH_SSL=system                             (要包含的SSL支持类型或要使用的OpenSSL安装的路径名。)

-DWITH_ZLIB=system                            (编译zlib)

-DWITH_LIBWRAP=0                              (Whether to include libwrap (TCP wrappers) support.)

-DENABLED_LOCAL_INFILE=1                      (This option controls the compiled-in default LOCAL capability for the MySQL client library)

-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock      (服务器侦听套接字连接的Unix套接字文件路径。这必须是绝对路径名。默认是/tmp/mysql.sock)

-DDEFAULT_CHARSET=utf8                        (指定字符集)

-DDEFAULT_COLLATION=utf8_general_ci           

编译选项:https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

编译完成后安装。

make && make install

如果出错,执行rm -f CMakeCache.txt源码编译安装mariadb

4:准备环境变量

echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh

. /etc/profile.d/mysql.sh

5:生成数据库文件

cd /usr/local/mysql/

scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql

6:准备配置文件

cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf

7:准备启动脚本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

8:设置开机启动服务

chkconfig --add mysqld 

9:启动mysql服务器

                service mysqld start