CentOS7下源码编译安装MariaDB 10.2

MariaDB是MySQL的一个开源分支,主要是社区在维护,并且完全兼容MySQL,MariaDB在很多方面的性能也要强过MySQL,本文讲解了在CentOS7.2环境下编译安装MariaDB 10.2的过程。

准备

首先准备CentOS7.x操作系统,你可以准备一台虚拟机。然后到MariaDB官网下载源码包mariadb-10.2.12.tar.gz,笔者发表此文时,当前稳定版是10.2.12。下载好后将源码包传至CentOS中。

安装

1.添加用户和组,设置数据保存目录:

groupadd mariadb
useradd -s /sbin/nologin -M -g mariadb mariadb
chown -R mariadb:mariadb /data/mysql
知识兔

上面的命令给系统添加了mariadb用户和组,并给数据存储目录/data/mysql添加相应权限,如果/data/mysql不存在,则手动先创建好。

2.安装cmake和依赖。

yum -y install cmake ncurses ncurses-devel bison
知识兔

3.进入目录解压tag包。

tar -zxvf mariadb-10.2.12.tar.gz
cd mariadb-10.2.12
知识兔

4.执行编译安装:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITHOUT_TOKUDB=1
知识兔

注意:-DCMAKE_INSTALL_PREFIX是指定安装的位置,这里是/usr/local/mariadb,-DWITHOUT_TOKUDB=1这个参数一般都要设置上,表示不安装tokudb引擎,tokudb是MySQL中一款开源的存储引擎,可以管理大量数据并且有一些新的特性,这些是Innodb所不具备的,这里之所以不安装,是因为一般计算机默认是没有Percona Server的,并且加载tokudb还要依赖jemalloc内存优化,一般开发中也是不用tokudb的,所以暂时屏蔽掉,否则在系统中找不到依赖会出现:CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake:179 (message)的错误。

如果没有什么问题执行编译:

make && make install
知识兔

5.配置文件,直接复制源码包中的my-small.cnf文件作为配置文件。

在mariadb安装目录下的support-files有好几种配置模板,已经配置好的部分参数,分别用于不同的环境,这里简要说明一下:

  • my-small.cnf 这个是为小型数据库或者个人测试使用的,不能用于生产环境
  • my-medium.cnf 这个适用于中等规模的数据库,比如个人项目或者小型企业项目中
  • my-large.cnf 一般用于专门提供SQL服务的服务器中,即专门运行数据库服务的主机,配置要求要更高一些,适用于生产环境
  • my-huge.cnf 用于企业级服务器中的数据库服务,一般更多用于生产环境使用

所以根据以上几个文件,如果个人使用或者测试,那么可以使用前两个模板;企业服务器或者64G以上的高配置服务器可以使用后面两个模板,另外也可以根据自己的需求来加大参数和扩充配置获得更好的性能。

这里我们选用my-small.cnf作为测试。

cp -rf support-files/my-small.cnf /etc/my.cnf
知识兔

关于如何配置和优化my.cnf,我们后面会有文章专门介绍,这里先不做修改。

6.创建初始数据库

/usr/local/mariadb/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mariadb --datadir=/data/mysql --user=mariadb
chgrp -R mariadb /usr/local/mariadb/.
知识兔

以上代码初始化了数据库,并且赋予安装目录相应的权限。

7.加入到系统启动中,开机自启动

cp /usr/local/mariadb/support-files/mysql.server /etc/init.d/mariadb
chmod +x /etc/init.d/mariadb
chkconfig --add mariadb
chkconfig mariadb on
知识兔

8.启动MariaDB

/etc/init.d/mariadb start
知识兔

9.设置密码

/usr/local/mariadb/bin/mysqladmin -u root password 123456789
知识兔

我们给root用户设置密码为123456789。

10.重启MariaDB

/etc/init.d/mariadb restart
知识兔

11.查看是否正常

使用命令netstat -lntp查看3306端口是否正常了:

Mariadb Lntp

然后登录进入MariaDB中看下

/usr/local/mariadb/bin/mysql -uroot -p
知识兔

如果一切无误会出现如下代码则安装成功。

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.2.12-MariaDB-log Source distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
知识兔

接下来,就可以很好的玩耍MariaDB了。

CentOS7自带了MariaDB,你可以使用yum安装:《CentOS 7.x下的LEMP环境搭建》,如果你嫌编译安装麻烦,你也可以使用二进制文件快速安装,这个我们后面会有文章介绍。还有关于MariaDB的优化配置我们接下来也会专门有文章介绍,敬请关注。

计算机