falldog 发表于 2019-1-27 12:29:26

解决ubuntu系统mysql open_files_limit配置不生效问题

  最近接手维护一台mysql服务器,系统是ubuntu 16.04,mysql版本5.7,安装方式是apt检查mysql配置参数时发现open_files_limit是1024,有点小,需要调大一点
  首先show global status like 'open_files_limit' 查看目前打开了多少文件,一看是900多,很明显1024太小,需要调大,于是修改/etc/my.cnf 将open_files_limit 设置为65535,然后/etc/init.d/mysql restart重启mysql。
  重启完登录mysql用show variables查看发现配置没生效,还是1024。查看mysq日志,原来系统文件描述打开限制是1024,小于65535,mysql认为配置项不合理,所以用了默认值1024,于是修改/etc/secruity/limit.conf,添加以下两行

*         soft   nofile         65535
*         hard   nofile      65535
  修改完退出重新登录系统,使修改生效,然后重启mysql。心想这下应该生效了,然而并没有!一看还是1024,查看mysql日志,之前的提示系统文件描述符限制的信息已经没事有了,说明系统的问题已经解决了,难道还有其他限制,goole了一下,原来还要改一个地方
  修改/lib/systemd/system/mysql.service,添加以下两行

LimitNOFILE=65535
LimitMEMLOCK=65535
  然后执行以下命令重启mysql

#systemctl daemon-reload
#systemctl restartmysqld.service
  问题解决,open_files_limit变成65536了

总结:ubuntu系统下,要这个配置项生效有3个条件:
1.my.cnf要修改open_files_limit
2.系统open_files_limit的值要大于等于mysql的open_files_limit值
3./lib/systemd/system/mysql.service的open_files_limit值要设置的与my.cnf一致



页: [1]
查看完整版本: 解决ubuntu系统mysql open_files_limit配置不生效问题