mysql日志报错:
2022-02-22T03:21:39.505055Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2022-02-22T03:21:39.505065Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
问题原因:
用户需要打开的文件数超过了上限,通过命令“ulimit -a”可查看
解决办法:
ulimit -n 65535
ulimit 命令用来限制系统用户对 shell 资源的访问,但只是临时生效,想要永久生效需要配置 /etc/security/limits.conf 文件,语法及常见配置如下:
vi /etc/security/limits.conf # linux资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于linux系统的稳定性非常重要。limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。
增加以下两行设置
mysql hard nofile 65535
mysql soft nofile 65535 #mysql用户可以打开的最大的文件描述符数量,默认1024,这里的数值会限制tcp连接.soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错.
vi /usr/lib/systemd/system/mysqld.service 增加下面一行
LimitNOFILE=65535
# systemctl daemon-reload
# systemctl restart mysql.service
参考文献:https://www.jianshu.com/p/47336fcd22da