Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL ALTER TABLE se bloque

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 xxxxxx est le nombre dans le Id colonne), puis le processus s'est terminé immédiatement.