Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak rozwiązać MySQL innodb Oczekiwanie na blokadę metadanych tabeli na TRUNCATE TABLE?

Problem tutaj wydaje się dość prosty.

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

Wątek 189 (połączenie klienta) jest bezczynny i jak przez jakiś czas, ale zostawił uruchomioną transakcję. Jest to prawdopodobnie błąd w kodzie korzystającym z bazy danych, ponieważ nie ma sensu pozostawiać działającej transakcji na prawie godzinę.

mysql> KILL 189;

To powinno zwolnić blokadę metadanych... ale musisz dowiedzieć się, dlaczego tak się dzieje. Jeśli aplikacja nie zachowuje się lepiej niż to, wydarzy się Bad Things™.

Ponadto... Twoja aplikacja nie powinna łączyć się jako root . Niezwiązany z problemem, ale nie dobry, jeśli o to chodzi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cakephp:podczas wstawiania pola tinyint. Otrzymanie tylko 0 lub 1

  2. (2006, „Serwer MySQL zniknął”) w WSGI django

  3. MySQL INNER JOIN wybierz tylko jeden wiersz z drugiej tabeli

  4. Wyjątek MySQL — napotkany błąd krytyczny podczas odczytu danych

  5. Python od podstaw:stwórz dynamiczną stronę internetową