关于max_open_files和table_open_cache的MySQL警告

MySQL warnings about max_open_files and table_open_cache

提问人:Gert-Jan 提问时间:2/5/2019 更新时间:2/12/2019 访问量:4845

问:

我在 Ubuntu 5.7 上有一台 MySQL 18 服务器。当服务器启动时,它会在 error.log 中写入以下警告:

[Warning] Changed limits: max_open_files: 5000 (requested 7500)
[Warning] Changed limits: table_open_cache: 1745 (requested 2000)

有人可以解释是什么导致了这些警告(以及我能做些什么来使它们消失)?

MySQL 日志记录 警告

评论

0赞 Raymond Nijland 2/5/2019
“我能做些什么来让它们消失”,那么增加这些价值?
0赞 Gert-Jan 2/5/2019
您能更具体地介绍一下如何以及在哪里做到这一点吗?
0赞 prat 12/22/2020
这会是MySQL崩溃的原因吗?

答:

7赞 Gert-Jan 2/12/2019 #1

回答我自己的问题。最大打开文件数的限制在 systemd 脚本 /lib/systemd/system/mysql.service 中定义:

# MySQL systemd service file

[Unit]
Description=MySQL Community Server
After=network.target
....

LimitNOFILE=5000

将 LimitNOFILE 的值增加到 7500 解决了这两个警告。

评论

0赞 Auspex 10/26/2023
我很高兴看到我的服务文件不是这种情况(默认值应该来自 mysql 配置文件,而不是来自 Systemd!),但这留下了同样的问题。也许,只是在 mysql 配置中提高我的限制就是答案,但是什么要求更高的数字呢?