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