LEMP部署之MySQL的安装配置与优化

By | February 17, 2018

安装 MySQL 5.6

由于 CentOS 7 如果安装 MySQL,將会安装的是 Mariadb,但我要的是 MySQL,所以要添加 MySQL 的软件源到系统的本地软件库中。为了兼顾系统资源,所以选择 MySQL 5.6。

  1. 安装 MySQL 社区版的软件库

  1. 查看当前的本地仓库

执行结果:

好了,现在确定本地软件仓库中已经有了 MySQL 5.6 这个版本的软件了。

  1. 执行安装 MySQL

配置 MySQL

  1. 启动 MySQL

  1. 开机启动 MySQL

  1. MySQL 设置向导

执行结果:

  1. 尝试以刚才更换的密码登录 MySQL
    mysql -uroot -p
    Enter password: 输入先前设定的密码登录
  2. 登录成功,然后执行mysql> show variables like '%char%'; 获取数据库相关的编码信息:

从上面的执行结果可以看出有两项编码为 latin1,显然不是支持中文的字符集编码,所以要配置一下 MySQL 使之变成 UTF-8 编码。
6. 修改 MySQL 的配置文件以使用其服务器和客户端支持中文编码
追加以下内容到 /etc/my.cnf 文件:

保存文件,并重启 MySQL systemctl restart mysqld
7. 登录 MySQL,再次查询编码信息

执行结果:

达到预期。

于此,MySQL 已经配置完成。

优化 MySQL

因为默认情况下 MySQL 占用太多的系统资源,所以要优化几个参数,使其适应小内存服务器的运行环境,不那么易宕机。

  1. query_cache_type
    • 默认值为 0,表示查询缓存不可用,此时的 query_cache_size 值为 1M。
    • 如果值为 1,表示对查询语句不以SELECT SQL_NO_CACHE为开头时启用查询缓存。
    • 如果值为 2,表示只有以SELECT SQL_CACHE为查询语句开头时启用缓存。
    • 每个连接到 MySQL 服务器的客户端会话都可以有自己对query_cache_type的单独设置。例如:mysql> SET SESSION query_cache_type = OFF;
    • 如果query_cache_size设为 0,那么query_cache_type也应该设为 0。当query_cache_size不为 0 时,查询缓存至少需要分配 40KB的空间。
  2. query_cache_size
    • 默认禁用。此时的值为 1M。
    • 允许的值必须是 1024 的整数倍,其他值向下取整为最近的倍数。
    • 如果值不为 0,那么依然会分配一些比特的空间给运行时。
    • 构造它需要分配 40KB 空间。
    • 1GB 内存的服务器建议设为 32M
  3. performance_schema
    • performance_schema 作为一个存储引擎的实现。
    • 默认值为 ON,通过以下的查询,如果默认情况下值是 OFF,那么表示发生了错误。

暂时就优化这三项,最终,编辑 /etc/my.cnf 文件,在[mysqld]块内追加如下内容:

重启 MySQL 进程

Create On: 2018-02-16

参考资料

query_cache_size
8.10.3.3 Query Cache Configuration
22.1 Performance Schema Quick Start

移步:https://blog.linuxeye.cn/379.html 还有更多的调优技巧,专门为 1GB 小内存服务器而配置。


© 2018 – 2019, wpmaster. All rights reserved.

鉴于本人的相关知识储备以及能力有限,本博客的观点或者描述如有错漏或是有考虑不周到的地方还请多多包涵,也欢迎指正,一起学习,共同进步。