您的位置:

CentOS7安装MySQL5.7并进行优化配置

一、安装MySQL5.7

1、在CentOS7上执行以下命令:

yum install -y wget
wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum localinstall -y mysql57-community-release-el7-10.noarch.rpm
yum install -y mysql-server

2、启动MySQL并设置MySQL开机启动:

systemctl start mysqld.service
systemctl enable mysqld.service

二、修改MySQL数据库字符集

默认情况下MySQL的字符集为Latin1,因此需要将MySQL的字符集修改为utf8mb4,执行以下命令:

vim /etc/my.cnf

在[mysqld]标签下添加:

collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
init_connect='SET NAMES utf8mb4'

保存并退出后重启MySQL服务:

systemctl restart mysqld.service

三、MySQL优化配置

1. 关闭不必要的服务

在MySQL安装完成后,MySQL默认会启动多个服务,其中一些服务并不是必须的,因此可以关闭这些不必要的服务。

vim /etc/my.cnf

在[mysqld]标签中添加以下内容,并保存:

#禁用mysql的DNS解析
skip-name-resolve
#关闭query cache 开启它后,会导致高并发性能问题:
query_cache_type=0
query_cache_size=0
#在事务提交前会执行commit
innodb_flush_log_at_trx_commit = 2
#线程池插件在生产环境上一定要使用
plugin-load=thread_pool.so

重启MySQL服务:

systemctl restart mysqld.service

2. 调整MySQL缓冲区大小

在MySQL中,缓存区大小对于性能的影响非常明显。max_connections值越高,分配给每个线程缓存区的内存就越小,因此需要调整缓冲区大小。

执行以下命令:

vim /etc/my.cnf

在[mysqld]标签中添加以下内容:

#缓冲区大小设置
key_buffer_size=512M
max_connections=1000
innodb_buffer_pool_size=2G
innodb_log_buffer_size=32M
innodb_flush_log_at_trx_commit=2

保存并退出后重启MySQL服务:

systemctl restart mysqld.service

3. 修改MySQL的打开文件句柄数量

在MySQL执行过程中,打开的文件数量会随着连接数的增加而增加,因此需要调整MySQL的打开文件句柄数量。

执行以下命令:

vim /etc/security/limits.conf

在文件末尾添加以下内容:

* soft nofile 655350
* hard nofile 655350
mysql soft nofile 655350
mysql hard nofile 655350

保存并退出后重启MySQL服务:

systemctl restart mysqld.service

4. 修改MySQL的连接超时时间

在MySQL中,连接超时时间默认为8小时,需要根据实际情况调整。

执行以下命令:

vim /etc/my.cnf

在[mysqld]标签中添加以下内容:

#连接超时时间设置
wait_timeout=300
interactive_timeout = 300

保存并退出后重启MySQL服务:

systemctl restart mysqld.service

四、总结

通过以上步骤,您已经成功地在CentOS7上安装了MySQL5.7并进行了优化配置,使得MySQL的性能得到了进一步提升。