欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

CentOS 7中升级MySQL 5.7.23的坑与解决方法

程序员文章站 2022-10-13 22:12:34
前言 最近发现centos 7下升级mysql5.7.23的一个坑,以前面升级到mysql 5.7.23的一个集群为例 在我们环境下打开文件描述符个数的参数open...

前言

最近发现centos 7下升级mysql5.7.23的一个坑,以前面升级到mysql 5.7.23的一个集群为例

CentOS 7中升级MySQL 5.7.23的坑与解决方法

在我们环境下打开文件描述符个数的参数open_files_limit在mysql 5.6.21下都统一配置为65535,而centos 7系统下安装mysql5.7.23的open_files_limit参数的默认值为5000

否则像分区表数量较多的集群,打开的文件个数过大时,数据库就会报错。

原因如下:

1、centos 7安装mysql5.7.23,服务管理发生了变化,从sysvinit(service mysql start)变化为systemd(systemctl start mysqld.service)

2、centos 7下limit的配置由下面配置文件来决定

全局设置:/etc/systemd/system.conf(如defaultlimitnofile=65535)

CentOS 7中升级MySQL 5.7.23的坑与解决方法

服务设置:[service]默认值为5000,应该将limitnofile修改为65535

CentOS 7中升级MySQL 5.7.23的坑与解决方法

【测试】

1、全局配置文件/etc/systemd/system.conf

2、service配置文件/usr/lib/systemd/system/mysqld.service

3、mysql配置文件/etc/my.cnf

【结论】

1、当以systemd管理mysql服务时,在下面3个配置文件中同时制定open_files_limit参数时,最终会以service配置文件为准

2、当service相关配置值注释掉时,会以全局配置文件为准

【解决方案】

1、单台修复方法,按下面步骤

#修改配置

vim /usr/lib/systemd/system/mysqld.service

#重载

systemctl daemon-reload

#重启服务生效

systemctl restart mysqld@replica01.service

2、安装包修复方法,修改下面两个源文件,将5000增加到65535,重新打包发布,这样新版本默认会保持与mysql5.6.21相同的配置

CentOS 7中升级MySQL 5.7.23的坑与解决方法

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。