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中看下
/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了。