回答
你可能在你的應用程序connection
泄漏,這就是爲什麼開放一次function
完成它的執行connections
沒有關閉。
我可能會查看應用程序代碼,看看connections
/preparedstatement
(如果它是java)對象沒有關閉並修復它。
快速解決方法是增加服務器的ulimit
(解釋爲here),這會增加打開文件描述符的數量(即connections
)。但是,如果您有連接泄漏,您將在稍後階段再次遇到此錯誤。
謝謝Darshan。我已經多次驗證任何連接泄漏。沒有泄漏w.r.t.連接。 –
當我在同一時間使用多個數據庫時,我太頻繁地得到errno: 24 - Too many open files
。
解決方案
- 確保連接緊密propertly
編輯/etc/systemd/system.conf數據庫服務器。取消註釋並
DefaultLimitNOFILE=infinity DefaultLimitMEMLOCK=infinity
然後運行
systemctl daemon-reload
和service mysql restart
。
您可以使用查詢:SHOW GLOBAL VARIABLES LIKE 'open_files_limit'
檢查結果,您可能會注意到該值已更改。你現在不應該有任何errno 24。
請注意,該解決方案可能與其他操作系統/版本不同。您可以嘗試先找到變量。使用Ubuntu 16.04.3和mysql 5.7.19進行測試。
在我的情況下,在mysql配置文件中設置open_files_limit
變量是無用的,因爲該變量被標記爲只讀。
我希望它有幫助!
- 1. 如何解決Bazaar中的「太多打開的文件」錯誤?
- 2. 如何解決java.net.SocketException消息:打開的文件太多
- 3. 打開的文件太多
- 4. ostream無法打開文件,因爲打開的文件太多
- 5. 留下打開的文件導致「打開文件太多」
- 6. Docker忽略limits.conf(試圖解決「打開太多文件」的錯誤)
- 7. 打開多處理文件太多。池
- 8. spark(java) - 太多的打開的文件
- 9. java.io.FileNotFoundException:Output.txt的(打開的文件太多)
- 10. Foxpro的「打開的文件太多」
- 11. C:打開的文件太多
- 12. 打開的文件太多python
- 13. Play框架打開的文件太多
- 14. npm -g「whatever」太多打開的文件
- 15. '打開的文件太多'錯誤
- 16. mq_open() - 太多打開的文件
- 17. SocketException:打開的文件太多
- 18. Jetty IOException:打開的文件太多
- 19. 打開的文件錯誤太多,java.io.FileNotFoundException
- 20. java.io.FileNotFoundException(打開的文件太多)
- 21. Cassandra太多打開的文件。 Port died
- 22. Tomcat錯誤太多打開的文件
- 23. 異常:打開的文件太多
- 24. 打開的文件太多urllib
- 25. java autosys打開的文件太多
- 26. python中打開的文件太多
- 27. fopen問題 - 太多打開的文件
- 28. OSError:[Errno 24]太多打開的文件
- 29. Django太多打開的文件
- 30. php-fpm太多打開的文件
檢查'SHOW PROCESSLIST'查看這些來自哪裏。也許一個過程無意中用掉了太多。 – tadman