Neue CentOS-Installation.
Ich habe einen Import einer großen Datenbank (2 GB SQL-Datei) ausgeführt und hatte ein Problem. Der SSH-Client schien die Verbindung zu verlieren und der Import schien einzufrieren. Ich benutzte ein anderes Fenster, um mich bei MySQL anzumelden, und der Import schien tot zu sein und auf einer bestimmten 3M-Zeilentabelle festzustecken.
Also habe ich es versucht
DROP DATABASE huge_db;
15-20 Minuten später nichts. In einem anderen Fenster tat ich:
/etc/init.d/mysqld restart
Das DROP DB-Fenster meldete: SERVER SHUTDOWN. Dann habe ich tatsächlich den physischen Server neu gestartet.
Zurück in MySQL eingeloggt, überprüft und die Datenbank war noch da, lief
DROP DATABASE huge_db;
wieder und wieder warte ich schon ca 5 minuten.
Es ist wieder eine Neuinstallation. Das huge_db
ist die einzige db (außer System dbs). Ich schwöre, ich habe db's so schnell fallen lassen, aber vielleicht irre ich mich.
Ich habe die Datenbank erfolgreich gelöscht. Es dauerte ungefähr 30 Minuten. Beachten Sie auch, dass ich mich geirrt habe, als ich dachte, der mysqldump-Import sei tot. Die Terminalverbindung wurde unterbrochen, aber ich glaube, der Prozess lief noch. Ich habe höchstwahrscheinlich den Import-Mid-Table (die 3M-Zeilentabelle) und wahrscheinlich 3/4 der gesamten Datenbank getötet. Es war irreführend, dass "top" zeigte, dass mysql nur 3% des Arbeitsspeichers beanspruchte, wenn es so aussah, als ob es mehr verwenden sollte.
Das Löschen der Datenbank dauerte letztendlich 30 Minuten, daher musste ich den Server möglicherweise nicht neu starten und hätte möglicherweise nur auf den Abschluss des DROP warten müssen, aber ich weiß nicht, wie mysql auf das Abrufen einer DROP-Abfrage für reagieren würde Dieselbe Datenbank, die über mysqldump importiert wird.
Es bleibt jedoch die Frage, warum das DROP einer 2-GB-Datenbank 30 Minuten + dauert, wenn alles, was zu tun ist, das Löschen aller DB-Dateien und das Entfernen aller Verweise auf die DB aus information_schema ist. Was ist die große Sache?
DROP DATABASE
Befehl absetzen, fährt der Server erst fort, nachdem alle Verbindungen geschlossen wurden.