sql >> Databáze >  >> RDS >> Mysql

Jak vyřešit MySQL innodb Čekání na zámek metadat tabulky na TRUNCATE TABLE?

Zdá se, že problém je dostatečně přímočarý.

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

Vlákno 189 (připojení klienta) je chvíli nečinné, ale nechalo spuštěnou transakci. Pravděpodobně jde o chybu v kódu, který používá databázi, protože nedává smysl nechat běžící transakci běžet téměř hodinu.

mysql> KILL 189;

To by mělo uvolnit zámek metadat... ale musíte zjistit, proč se to děje. Bad Things™ se stane, pokud se aplikace nebude chovat lépe než toto.

Také... vaše aplikace by se neměla připojovat jako root . Nesouvisí s problémem, ale není to dobré, pokud to je to, co to je.




  1. Aktualizujte dotaz pomocí poddotazu na serveru SQL Server

  2. Jak převést čas MySQL na časové razítko UNIX pomocí PHP?

  3. Výukový program připojení SQL

  4. Laravel 5:synchronizace dalšího pole přes pivot