MySQL 重启提示超出可打开文件数限制|Buffered warning: Changed limits: max_open_files: 1024

Linux 服务器经常一段时间就会出现这样的问题,一个月半个月的样子。每次都重启服务器临时性解决,昨晚仔细看了看报的错误。

先看应用的日志提示连不上 MySQL 服务器。

 "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)"

再看看 MySQL 的日志,发现原来超过限制了。

190314 11:18:08 mysqld_safe mysqld restarted
2019-03-14 11:18:09 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-03-14 11:18:09 0 [Note] /usr/sbin/mysqld (mysqld 5.6.34) starting as process 16180 ...
2019-03-14 11:18:09 16180 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2019-03-14 11:18:09 16180 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000)

既然看到问题,先网上搜搜别人怎么解决的。

都在说修改系统的文件数限制,ulimit -a 一看,65535,对的呀。

怪事,MySQL 也有限制,看一下

show variables like '%files%';

果然是 1024 


更新,问题不对。是系统内存不足了。

数据库优化

1、ip 地址反向解析。关闭

skip-name-resolve

提示数据库反应时间。

2、数据库故障问题:内存不足,获取不到更多内存。 

2019-03-14 11:18:09 16180 [ERROR] InnoDB: Cannot allocate memory for the buffer pool

下午已升了配置。

参考链接:http://blog.itpub.net/20893244/viewspace-2152685 

原文地址:https://www.cnblogs.com/ekse/p/10541508.html