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

Comment résoudre MySQL innodb En attente du verrouillage des métadonnées de la table sur TRUNCATE TABLE ?

Le problème ici semble assez simple.

---TRANSACTION 7490, ACTIVE 3047 sec
MySQL thread id 189, OS thread handle 0x7f03be9fb700, query id 3840 10.0.2.1 root cleaning up
Trx read view will not see trx with id >= 7491, sees < 7491
---

Le thread 189 (une connexion client) est inactif depuis un certain temps, mais il a laissé une transaction en cours d'exécution. Il s'agit probablement d'un bogue dans le code qui utilise la base de données, car cela n'a aucun sens de laisser une transaction en cours d'exécution pendant près d'une heure.

mysql> KILL 189;

Cela devrait libérer le verrou des métadonnées... mais vous devez savoir pourquoi cela se produit. Bad Things™ se produira si une application ne se comporte pas mieux que cela.

Aussi... votre application ne doit pas se connecter en tant que root . Pas lié au problème, mais pas bon, si c'est de cela qu'il s'agit.