【MySQL 15】Could not increase number of max_open_files to more than 10000 (request: 65535)

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL/MariaDB主从同步出现"exceeded max_allowed_packet"错误时,可以通过增加主服务器上的max_allowed_packet参数来解决。这个参数定义了发送给从服务器的单个语句的最大大小限制。你可以通过以下步骤来增加max_allowed_packet参数: 1. 连接到主服务器的终端或命令行界面。 2. 执行以下命令来编辑主服务器的配置文件(例如my.cnf或my.ini): ```shell vi /etc/my.cnf ``` 3. 在配置文件中找到部分,并在其下面添加或修改以下行: ```shell max_allowed_packet=64M ``` 这里,我们将max_allowed_packet设置为64M,你可以根据需要调整这个值。 4. 保存并关闭配置文件。 5. 重启主服务器,使配置更改生效。 请注意,这个配置更改只会影响主服务器,从服务器不需要做任何修改。通过增加max_allowed_packet参数,你可以提高主服务器发送给从服务器的数据包大小限制,从而解决"exceeded max_allowed_packet"错误。123 #### 引用[.reference_title] - *1* *3* [mysql死锁;mysql_safe方式的重启;mysql备份恢复;](https://blog.csdn.net/JackLiu16/article/details/79186011)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *2* [mysql/mariadb 主从同步出错 exceeded max_allowed_packet; Increase max_allowed_packet on master;](https://blog.csdn.net/madness1010/article/details/122839174)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值