Je suis arrivé à cette question en recherchant "mysql alter table hanging" et je pense que la réponse (dans les commentaires) devrait être documentée.
Si vous exécutez une commande MySQL (dans ce cas pour ajouter une colonne) et qu'elle se bloque de manière inattendue, par ex. pas en raison de la taille des données dans la table, puis vérifiez les autres processus en cours d'exécution sur la base de données. J'ai laissé la requête en cours d'exécution, je me suis connecté au serveur avec un autre client et j'ai tapé
SHOW PROCESSLIST;
Ma requête était suspendue et ce message était dans l'état state
colonne :
Waiting for table metadata lock
J'ai remarqué que j'avais plusieurs connexions zombies depuis ma machine, je les ai tuées (KILL xxx
où xxx
est le nombre dans le Id
colonne), puis le processus s'est terminé immédiatement.