DROP DATABASE (MySQL)
Casus: Foutmelding 39 (Nov. 2016)
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)
.