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
einSHOW 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.