最近接手维护一台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 restart mysqld.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一致