一、安装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的性能得到了进一步提升。