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