huaishuming 2016-10-26
数据库服务器是绝大多数应用程序的关键组成部分。如果没有存储、检索、更新和删除数据的能力,那么Web应用和桌面应用的实用性和使用范围会变得非常有限。
此外,知道如何安装、管理和配置数据库服务器,使得数据库的运行达到预期设定,是每个系统管理员必备技能。
在这篇文章中,主要讲述了MariaDB数据库的安装、性能优化和安全。
在CentOS 7.x系统中,MariaDB正式取代了MySQL的地位,预置到系统仓库中。这一点在Ubuntu和openSUSE等系统上也是如此。
要安装MariaDB,执行命令:
--------------- On CentOS/RHEL 7 and Fedora 23 --------------- # yum update && yum install mariadb mariadb-server # CentOS --------------- On Debian and Ubuntu --------------- $ sudo aptitude update && sudo aptitude install mariadb-client mariadb-server --------------- On openSUSE --------------- # zypper update && zypper install mariadb mariadb-tools # openSUSE
一但MariaDB软件包完成了安装,需要确保数据库服务启动运行,并且能开机自动启动。在CentOS和openSUSE系统都需要手段执行命令才能实现上述需求,而Ubuntu的安装过程可以自动完成这一点。
--------------- On CentOS/RHEL 7 and Fedora 23 --------------- # systemctl start mariadb && systemctl enable mariadb --------------- On openSUSE --------------- # systemctl start mysql && systemctl enable mysql
完成以上操作后,是时候对MariaDB的安全进行加固了。需要运行mysql_secure_installation脚本。此脚本可以实现:
MariaDB服务器默认的配置文件在这里,注意下面给定的顺序:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
在大多数情况下,只存在/etc/my.cnf配置文件。对于Linux服务器上的用户,可以使用~/.my.cnf配置文件来覆盖这个配置文件。
要注意,在my.cnf配置文件中,每一个节的内容都是由方括号分隔的。
服务器的系统配置在[mysqld]节中给出,下表中的前两行就是其中的内容,余下的都是可选项,可以按自己的需求修改其默认值。
在CentOS系统中,还需要告诉SELinux允许MariaDB的监听端口穿透防火墙,然后重启服务。
# yum install policycoreutils-python # semanage port -a -t mysqld_port_t -p tcp 20500
最简单、最方便的MariaDB性能优化技巧,就是使用mysqltuner工具。mysqltuner其实是一个脚本,它可以扫描数据库服务器,并提出性能和稳定性方面的改进建议。
要安装mysqltuner:
# wget https://github.com/major/MySQLTuner-perl/tarball/master # tar xzf master
然后进入mysqltuner的解压目录:
# cd major-MySQLTuner-perl-7dabf27
运行mysqltuner:
# ./mysqltuner.pl
mysqltuner输出的报告大致如下:
结果报告建议把query_cache_type设置为0,0表示禁用,1表示启用。
那么为什么mysqltuner会建议停用query_cache_type呢?原因是,查询缓存适用于高读/低写的情况,而我们才安装了MariaDB,显然还不具备这种情况。
注意:使用mysqltuner进行调优,并非一次性的工作,每隔一段时间就应该检查一次,做一些调整。