At times, dropping and restoring databases can be a quick way to restore websites.
But, what if database drop attempt ends up in error dropping database errno: 39?
Quite frustrating right?
This error code means that the directory you are trying to drop is not empty, it contains some hidden files.
At Bobcares, we often get requests on database errors as a part of our Server Management Services.
Today, let’s have a look into errno: 39 error code and see how our Support Engineers fix it for our customers.
What is error dropping database errno 39?
Database users usually cross many situations where they CREATE, DROP, SELECT databases. Here, let’s look into the DROP DATABASE statement in detail.
For instance, dropping a database means deleting an existing database. So, when does the error errno:39 occur?
One of our customers wanted to drop the database userdb. After executing the command to drop the database, it ended up as,
mysql> drop database userdb; ERROR 1010 (HY000): Error dropping database (can't rmdir './userdb', errno: 39)
Here, the code errno: 39 denotes that the directory is not empty. That is, there are some hidden files in the database directory. But the MySQL is unaware of those files.
Above all, the error statement describes that the MySQL service cannot remove the directory of the database userdb.
A similar error in PHPMyAdmin will appear as :
Fixing errno 39 error
So far, we saw what is errno 39 error while dropping the database.
Now, let’s see how our Support Team fix this error for our customers.
Firstly, we check the database directory. In a Linux system, the database directory location will be usually at /var/lib/mysql
We list all files in the directory and check for files that show up errors while dropping the database.
Mostly, hidden files, .ibd file, causes the error errno:39.
To fix the error the Support Team removes the error causing files manually.
Database changes are irreversible. Therefore, we always take a backup of the entire database directory to avoid any mishap.
Finally, we execute the DATABASE DROP command. This easily empty the database.
[Having difficulty in fixing error dropping database errno 39 – We will fix it for you.]
In short, the error dropping database errno: 39 occurs due to files that are inaccessible by the database. We also saw how our Support Team fix it for our customers.