DROP DATABASE (MySQL)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Casus: Foutmelding 39 (Nov. 2016)

Databases zijn mappen met bestanden, in dit geval onder /var/lib/mysql
In dit geval verslikte MySQL zich in dit bestand ?mpmysql-output.csv. Misschien een verdwaald export-bestand? Ik heb hier ingelogd als root mbv. su
ERROR 1010 (HY000): Error dropping database (can't rmdir './webwinkels', errno: 39)

Een database is een verzameling bestanden op een harde schijf. Deze foutmelding geeft aan dat MySQL niet in staat is om de map waarin die bestanden staan, te verwijderen.

/var/lib/mysql/

met een map per database.

Casus: Foutmelding 39 (okt. 2021)

Het probleem

mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3789
Server version: 10.3.31-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> drop database example_com;
ERROR 1010 (HY000): Error dropping database (can't rmdir './example_com', errno: 39 "Directory not empty")

Aanvullende gegevens

Datadir achterhalen:

$ SHOW VARIABLES WHERE Variable_name LIKE '%datadir%';

+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.002 sec)

Inhoud van deze map (ll is een alias. Die kan ik niet gebruiken icm sudo):

$ sudo ls -alF /var/lib/mysql/carbonbrushes_sk

total 80
drwx------  2 mysql mysql 12288 Oct 20 10:18 ./
drwxr-xr-x 12 mysql mysql  4096 Oct 19 19:24 ../
-rw-rw----  1 mysql mysql 65536 Oct 19 12:06 wp_wpmm_subscribers.ibd

Je kunt hier de entry .. zien, dat mysql schrijftoegang heeft tot deze map - Waarom lukt verwijderen dan niet?

Oorzaak

Ik heb geen idee waarom mysql dat ene bestand wp_wpmm_subscribers.ibd niet kan verwijderen. Ik wil er niet te veel tijd aan besteden, dus ik hoe het handmatig.

Oplossing

Conform [1]:

  • Stop MySQL-server: sudo service mysqld stop
  • Remove the file (I don't want to remove the whole database-folder): sudo rm /var/lib/mysql/example_com/wp_wpmm_subscribers.ibd
  • Restart MySQL-server: sudo service mysqld start
  • Just out of curiosity: After logging in, into mysql-client, the database still exists (show databases)
  • Drop database. Reply: Query OK, 0 rows affected (0.001 sec).

Bronnen