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

Wycofanie MySQL w przypadku transakcji z utraconym/rozłączonym połączeniem

Kiedy fizycznie odłączasz klienta, nie wysyłasz normalnego rozłączenia (co spowodowałoby wycofanie), a protokół MySQL nie jest zbyt rozmowny, więc serwer nigdy nie wie, że klienta tam nie ma. Myślę, że jest to wada protokołu w porównaniu z innymi systemami baz danych, w których klient i serwer rozmawiają wewnętrznie znacznie więcej.

Tak czy siak. Istnieją dwie zmienne, które możesz zmienić. Zasadniczo robią to samo, ale dla różnych klientów.

Pierwszy to wait_timeout i jest używany przez klientów aplikacji, takich jak java lub php.

Drugi to interactive_timeout i jest używany przez klienta mysql (jak w twoich testach)

W obu przypadkach serwer zabija połączenie po kilku sekundach, a gdy to robi, wycofuje wszystkie transakcje i zwalnia wszystkie blokady.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 1. rząd w grupie według ostatniego rzędu

  2. Jak wybrać DISTINCT wiersze bez zaznaczenia pola ORDER BY?

  3. Nie można połączyć się z serwerem MySQL na „127.0.0.1” (10061) (2003)

  4. przenieść tabelę z jednego schematu do innego schematu ?

  5. Historia zapytań MySql workbench (ostatnie wykonane zapytanie / zapytania) tj. tworzenie / zmiana tabeli, wybieranie, wstawianie zapytań aktualizujących