sql >> Databasteknik >  >> RDS >> Mysql

Hur löser jag MySQL innodb Väntar på tabellmetadatalås på TRUNCATE TABLE?

Problemet här verkar okomplicerat nog.

---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
---

Tråd 189 (en klientanslutning) är inaktiv, och som varit ett tag, men den har lämnat en transaktion igång. Detta är förmodligen en bugg i koden som använder databasen, eftersom det inte är meningsfullt att låta en pågående transaktion pågå i nästan en timme.

mysql> KILL 189;

Det borde släppa metadatalåset... men du måste ta reda på varför detta händer. Bad Things™ kommer att hända om en applikation inte beter sig bättre än så här.

Dessutom... din applikation ska inte ansluta som root . Inte relaterat till problemet, men inte bra, om det är vad det är.




  1. Spotlight Cloud-stöd för Azure SQL DB Announcement (förhandsgranskning)

  2. Få förfrågan tillbaka från PDO-förberedd uttalande

  3. Kapslade klasser - CustomRowMapper !! Inget problem längre!! - Del 2

  4. Hur genererar/autoinkrementerar man guide på infogning utan triggers och manuella infogar i mysql?