×


Plesk error Mysql Errcode: 24 – Too many open files

Plesk error Mysql Errcode: 24 – Too many open files indicates that there is a connection leak in your application, that is why open connections are not closed once the function completes it's execution.

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform related MySQL queries.

In this context, we shall look into how to fix Plesk errors.


Nature of Mysql Errcode: 24 – Too many open files 

Typically, error might look as shown below:

Error: SQLSTATE[HY000]: General error: 23 Out of resources when opening file ‘/tmp/#***.MYD’ (Errcode: 24 – Too many open files)
[ERROR] /usr/sbin/mysqld: Can’t open file: ‘./usr_web587_1/etqvi_languages.frm’ (errno: 24 – Too many open files)
Failed to process database ‘wordpress_f’ from domain ‘example.com’: MySQL error 1018: Can’t read dir of ‘./wordpress_f/’ (errno: 24 “Too many open files”) executing query: SHOW TABLE STATUS FROM `wordpress_f`
[ERROR] Error in accept: Too many open files
DB query failed: SQLSTATE[HY000]: General error: 1016 Can’t open file: ‘./psa/misc.frm’ (errno: 24), query was: select param, val from misc

You can see this  error in the mysql error log while performing backups.

1. An error message related to MySQL service appears in one of these log files:

/var/log/plesk/panel.log
/var/log/mysql/error.log
/var/log/mariadb/mariadb.log
/var/log/syslog

2. Disk usage statistics in Plesk is not calculated with one of the errors above.

3. MySQL service goes down periodically.

4. Plesk fails to load or operations with MySQL databases (for example backup) fail with one of the following error messages:

ERROR: PleskDBException: Unable to connect to database: mysql_connect(): MySQL server has gone away (Error code: 2006) (Abstract.php:69)
DB query failed: SQLSTATE[HY000]: General error: 23 Out of resources when opening file ‘/tmp/#sql_2ff_0.MAI’ (Errcode: 24 “Too many open files”), query was: DESCRIBE `sessions`

5. A Plesk backup is create with the following warning:

WARNING : (mysql object ‘johndoe_opencart_e’) Not all the data was backed up into /var/lib/psa/dumps/clients/john_doe/domains/example.com/databases/johndoe_opencart_e_1 successfully. mysqldump: Couldn’t execute ‘show table status like ‘address”: Can’t read dir of ‘./john_doe_opencart_e/’ (errno: 24 – Too many open files) (1018)

When MySQL fails to open required files, the process gets hanged and systemd fails to stop MySQL process.


How to fix Mysql Errcode: 24 – Too many open files ?

We found solution for this error in Plesk and Directadmin servers.

a. Mysql Errcode: 24 – Too many open files in Plesk.

1. With MariaDB installed

i. Firstly, connect to the server via SSH.

ii. Modify MariaDB startup script:

# systemctl edit mariadb

iii. Set open files limit for the MariaDB service:

[Service]
LimitNOFILE=8192

iv. Restart the MariaDB service:

# systemctl restart mariadb

v. Verify the changes:

# egrep “open files” /proc/$(cat `plesk db -Ne “show variables like ‘pid_file'” | awk ‘{print $2}’`)/limits
Max open files 8192 8192 files


2. With MySQL installed

i. Firstly, connect to the server via SSH.

ii. Modify MySQL startup script:

# systemctl edit mysql

iii. Set open files limit for the MySQL service:

[Service]
LimitNOFILE=8192

iv. Restart the MySQL service:

# systemctl restart mysql

v. Verify the changes:

# egrep “open files” /proc/$(cat `plesk db -Ne “show variables like ‘pid_file'” | awk ‘{print $2}’`)/limits
Max open files 8192 8192 files


b. Mysql Errcode: 24 – Too many open files in Directadmin

To fix this error in Directadmin.

1.Edit /etc/init.d/mysqld and add this to the top, after #!/bin/sh:

ulimit -HSn 1024
ulimit -HSn 32768
ulimit -HSn 1024000

Which should force it to try and set it as high as it can go. If one of the value is too high, delete that line, or lower the value.

2.Check /etc/my.cnf. Under the [mysqld] section, if you have a open_files_limit variable, increase it, eg:

open_files_limit=32768

Then restart mysqld.

3.Confirm in mysql itself by checking the open_files_limit variable to ensure it’s increased, by running the SQL query:

Show global variables like 'open%';


[Finding it hard to fix Mysql errors? We'd be happy to assist you. ]


Conclusion

This article covers how to fix MySQL error in Plesk and DirectAdmin. Here, you will learn how to resolve MySQL Errcode: 24 - Too many open files.