DROP DATABASE (MySQL)

Uit De Vliegende Brigade
Versie door Jeroen Strompf (overleg | bijdragen) op 20 okt 2021 om 11:23 (→‎Aanvullende gegevens =)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

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