栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【MySQL 15】Could not increase number of max

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【MySQL 15】Could not increase number of max

1、阅读8.4.3.1 MySQL 如何打开和关闭表
https://dev.mysql.com/doc/refman/5.6/en/table-cache.html

其中指出: “table_open_cache 和 max_connections 系统变量会影响服务器保持打开的最大文件数。如果您增加其中一个或两个值,您可能会遇到操作系统对每个进程打开文件描述符的数量施加的限制。许多操作系统允许您增加打开文件的限制,尽管方法因系统而异。请查阅您的操作系统文档,以确定是否可以增加限制以及如何增加限制。”

2、阅读 MySQL 的open_files_limit 文档,
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_open_files_limit

其中指出:“操作系统允许 mysqld 打开的文件数。此变量在运行时的值是系统允许的实际值,可能与您在服务器启动时指定的值不同。在 MySQL 无法更改打开文件数的系统上,该值为 0。…有效的 open_files_limit 值基于系统启动时指定的值(如果有)以及 max_connections 和 table_open_cache的值. 服务器尝试使用这三个值中的最大值来获取文件描述符的数量。如果无法获取那么多描述符,服务器会尝试获取系统允许的尽可能多的描述符。”

3、 检查 Opened_tables状态变量,该变量指示自服务器启动以来的开表操作数:
mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 43618 |
+---------------+-------+
1 row in set (0.00 sec)

mysql> 

4、解决方案

如果 MySQL 以下警告开头:

Could not increase number of max_open_files to more than 10000 (request: 65535)

这意味着某个地方正在达到极限。让我们通过编辑任何配置的限制来解决这个问题。查看以下文件:

linux-2dk8:/ # find -name mysql.service
./etc/systemd/system/multi-user.target.wants/mysql.service
find: File system loop detected; ‘./.snapshots/1/snapshot’ is part of the same file system loop as ‘.’.
./usr/lib/systemd/system/mysql.service
./sys/fs/cgroup/pids/system.slice/mysql.service
./sys/fs/cgroup/devices/system.slice/mysql.service
./sys/fs/cgroup/systemd/system.slice/mysql.service
linux-2dk8:/ # cat /usr/lib/systemd/system/mysql.service

在mysql.service文件中查找配置

linux-2dk8:/ # cat /usr/lib/systemd/system/mysql.service
# Sets open_files_limit
LimitNOFILE = 10000

请不要使用无穷大作为值;它默认为 65535。因此,如果您看到值 infinity,请将其替换为所需的限制。

修改之后的为:

# Sets open_files_limit
LimitNOFILE = 65535

完成此操作后,您现在应该重新加载系统守护程序并重新启动 MySQL 服务:

systemctl daemon-reload
systemctl restart mysql

通过 MySQL 命令行检查新限制。您可以使用以下查询,确保设置了新限制:

mysql> SHOW VARIABLES LIKE 'open_files_limit';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 65535 |
+------------------+-------+
1 row in set (0.01 sec)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006056.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号