centos7 mysql5.7升级_CentOS 7下升级MySQL5.7.23的一个坑

在CentOS 7上升级MySQL 5.7.23时遇到open_files_limit默认值过低的问题,导致打开文件数过多时报错。原因是systemd服务管理的LimitNOFILE配置,默认值为5000。解决方案包括修改mysqld.service文件,将LimitNOFILE设为65535,或者通过调整全局系统配置和mysql配置文件来确保兼容性。
摘要由CSDN通过智能技术生成

发现CentOS 7下升级 MySQL 5.7.23的一个坑,以前面升级到MySQL 5.7.23的一个集群为例

fb2fe823b1f82b93a18d17b092249d46.png

在我们环境下打开文件描述符个数的参数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)

518cf401bbb3f62dc4ebe5e1836caadf.png

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

ee1cf9149bc90adf6f322ef1ee54e6ea.png

【测试】

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相同的配置

147dd7fc768954f8de3387f5b8c1d99b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值