当前位置:网站首页>【MySQL 15】Could not increase number of max_ open_ files to more than 10000 (request: 65535)

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

2022-07-06 02:21:00 Rusty well began

1、 read 8.4.3.1 MySQL How to open and close a table

https://dev.mysql.com/doc/refman/5.6/en/table-cache.html

Which point out that : “table_open_cache and max_connections The system variable affects the maximum number of files that the server keeps open . If you increase one or two of these values , You may encounter the limit imposed by the operating system on the number of open file descriptors per process . Many operating systems allow you to increase the limit of opening files , Although the methods vary from system to system . Please check your operating system documentation , To determine whether and how limits can be increased .”
 Insert picture description here

2、 read MySQL Of open_files_limit file ,

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_open_files_limit

Which point out that :“ The operating system allows mysqld Number of open files . The value of this variable at run time is the actual value allowed by the system , It may be different from the value you specified when the server started . stay MySQL Cannot change the number of open files on the system , The value is 0.… Effective open_files_limit The value is based on the value specified when the system starts ( If there is ) as well as max_connections and table_open_cache Value . The server attempts to get the number of file descriptors using the maximum of these three values . If you can't get so many descriptors , The server will try to get as many descriptors as the system allows .”
 Insert picture description here

3、 Check Opened_tables State variables , This variable indicates the number of open table operations since the server was started :

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 43618 |
+---------------+-------+
1 row in set (0.00 sec)

mysql> 

4、 Solution

If MySQL The following warning begins :

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

This means that somewhere is reaching its limit . Let's solve this problem by editing any configuration restrictions . View the following files :

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

stay mysql.service Find the configuration in the file

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

Please do not use infinity as a value ; It defaults to 65535. therefore , If you see the value infinity, Please replace it with the required limit .

The modified is :

# Sets open_files_limit
LimitNOFILE = 65535

When this is done , You should now reload the system daemon and restart MySQL service :

systemctl daemon-reload
systemctl restart mysql

adopt MySQL The command line checks for new restrictions . You can use the following query , Make sure the new limit is set :

mysql> SHOW VARIABLES LIKE 'open_files_limit';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 65535 |
+------------------+-------+
1 row in set (0.01 sec)
原网站

版权声明
本文为[Rusty well began]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060202221730.html