Jag kom till denna fråga genom att söka på "mysql alter table hanging" och tycker att svaret (i kommentarerna) borde dokumenteras.
Om du kör ett MySQL-kommando (i det här fallet för att lägga till en kolumn) och det oväntat hänger sig, t.ex. inte på grund av storleken på data i tabellen, kontrollera sedan de andra processerna som körs mot databasen. Jag lämnade frågan igång, kopplade till servern med en annan klient och skrev
SHOW PROCESSLIST;
Min fråga hängde, och det här meddelandet var i state
kolumn:
Waiting for table metadata lock
Jag märkte att jag hade flera zombieanslutningar från min maskin, dödade dem (KILL xxx
där xxx
är numret i Id
kolumn), och sedan avslutades processen omedelbart.