发现CentOS 7下升级MySQL5.7.23的一个坑,以前面升级到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)

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

【测试】

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

更多相关文章

  1. 即使提供了参数,过程也需要参数
  2. SQL 函数如何设置参数默认值
  3. sql语句,order by后加参数问题
  4. 检索SQL语句的输出参数
  5. android-exploitme(四):参数篡改
  6. 如何在函数中将两个参数从1个类传递给另一个?
  7. Android的startActivityForResult()与onActivityResult()与setRe
  8. Android在Service中弹出对话框(Dialog),即全局性对话框
  9. Android开发入门之为应用添加多个Activity与参数传递

随机推荐

  1. 【Android Http Post】android post 请求
  2. Android 数据存储
  3. android开发指南中文版
  4. 阅读《Android(安卓)从入门到精通》(5)——
  5. android 动画模块分析
  6. Android TabHost Tutorial
  7. android API level
  8. Android ImageView和TextView居中
  9. Android NDK开发学习
  10. Android simpleperf