Ubuntu: 12.04 LTS (LinuxUbuntu3.2.0-40-Generic64-UbuntuSMP MonMar25 21:22:10 UTC 2013 mysql02 x86_64 GNU/Linux)
MySQL: Ubuntu发行版5.5.31
移除!
服务器已经运行了一年多了。然后,这个星期一,MySQL开始失败。一个更新已经导致了问题,我们无法弄清楚它是什么。我们甚至试图回到MySQL 5.5.30,但没有运气。我们5点31分回来。
130430 7:55:46 [ERROR] Error in accept: Too many open files
130430 7:55:46 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/fclvod.frm' (errno: 24)
130430 7:55:46 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/fcnote.frm' (errno: 24)
130430 7:55:47 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/ffcont.frm' (errno: 24)
130430 7:55:47 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/ffcontv.frm' (errno: 24)
130430 7:55:47 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/ffnote.frm' (errno: 24)
130430 7:55:47 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/frcfcl.frm' (errno: 24)看来我们遇到了极限问题。我们已经完全移除了APPARMOR。我们增加了/etc/安全/限制,但仍然没有运气:
# Out of desperation....
* soft nofile 49152
* hard nofile 65536
# No effect!?!!?
#mysql soft nofile 49152
#mysql hard nofile 65536为了证明limits.conf是有效的:
root@mysql02:/etc/security# ulimit -Sa | grep "open files"
open files (-n) 49152
root@mysql02:/etc/security# ulimit -Ha | grep "open files"
open files (-n) 65536以下是my.cnf中的重要条目
[mysqld_safe]
open_files_limit = 16384
[mysqld]
open_files_limit = 16384然而:
root@mysql02:/etc/mysql# mysqladmin -u root -pThePassword variables| grep open_files_limit
open_files_limit | 1024我们完全不知所措。如能提供任何协助,将不胜感激。
发布于 2013-04-30 14:21:49
OS: Ubuntu (Debian)部署
MySQL服务器选项:打开文件-限制
Debian upstart似乎没有使用/etc/security/ limits s.conf中定义的参数,所以当您通过service命令(在upstart下)启动mysql时,它会覆盖这些定义的限制,并使用默认的1024。
解决方案是修改定义upstart服务的mysql.conf文件,它位于/etc/init/mysql.conf中,并在预启动块之前添加以下行:
# NB: Upstart scripts do not respect
# /etc/security/limits.conf, so the open-file limits
# settings need to be applied here.
limit nofile 32000 32000
limit nproc 32000 32000参考文献:
发布于 2016-01-31 18:34:08
在Ubuntu 15.10上也有同样的问题。
https://bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1434758 -带来了解决方案:
systemctl daemon-reload..。一切都应该很好。
发布于 2017-04-13 13:34:33
由于上面没有一个解决了我的问题(只会导致系统内存不足),下面是我找到的解决方案:
在/etc/mysql/my.conf中,您需要增加MySQL的内部open_files_limit。因此,暂时将其添加到配置中并重新启动MySQL。
[mysqld]
open_files_limit = 100000sudo /etc/init.d/mysql restart
在运行给您提供太多打开文件错误的操作之后,您可以将配置更改为默认配置,并再次重新启动MySQL。
https://askubuntu.com/questions/288471
复制相似问题