Sono arrivato a questa domanda cercando "mysql alter table hanging" e penso che la risposta (nei commenti) dovrebbe essere documentata.
Se stai eseguendo un comando MySQL (in questo caso per aggiungere una colonna) e si blocca inaspettatamente, ad es. non a causa della dimensione dei dati nella tabella, quindi controlla gli altri processi in esecuzione sul database. Ho lasciato la query in esecuzione, mi sono connesso al server con un altro client e ho digitato
SHOW PROCESSLIST;
La mia richiesta era in sospeso e questo messaggio era nello state
colonna:
Waiting for table metadata lock
Ho notato che avevo diverse connessioni zombi dalla mia macchina, li ho uccisi (KILL xxx
dove xxx
è il numero nell'Id
colonna), quindi il processo è terminato immediatamente.