Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL ALTER TABLE hängt

Ich bin zu dieser Frage gekommen, indem ich nach "mysql alter table hanging" gesucht habe und denke, dass die Antwort (in den Kommentaren) dokumentiert werden sollte.

Wenn Sie einen MySQL-Befehl ausführen (in diesem Fall, um eine Spalte hinzuzufügen) und dieser unerwartet hängt, z. nicht aufgrund der Größe der Daten in der Tabelle, dann prüfen Sie die anderen laufenden Prozesse gegen die Datenbank. Ich ließ die Abfrage laufen, stellte mit einem anderen Client eine Verbindung zum Server her und tippte

ein
SHOW PROCESSLIST;

Meine Abfrage hing und diese Nachricht war im state Spalte:

Waiting for table metadata lock

Ich habe bemerkt, dass ich mehrere Zombie-Verbindungen von meinem Rechner hatte, habe sie getötet (KILL xxx wobei xxx ist die Zahl in der Id Spalte), und dann wurde der Vorgang sofort beendet.