sql >> Database teknologi >  >> RDS >> Mysql

innodb_lock_wait_timeout øge timeout

Hvis dette er en webapplikation, og du forsøger at hænge fast i transaktionen fra den ene side til den næste, ikke; det vil ikke virke.

Hvad mener du med "lige efter"? Hvis du ikke laver noget mellem de to udsagn, burde selv en timeout på 1 sekund være stor nok.

mysql> SET GLOBAL innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
|                         50 |
+----------------------------+
mysql> SET SESSION innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
|                          1 |
+----------------------------+

For at forklare GLOBAL vs SESSION for VARIABLER:GLOBAL-værdien bruges til at initialisere SESSION-værdien, når din forbindelse starter. Derefter kan du ændre SESSION-værdien for at påvirke, hvad du laver. Og at ændre den GLOBALE værdi har ingen effekt på din aktuelle forbindelse.

Ændring af timeout til 1 er ganske sikkert (når du forstår GLOBAL vs SESSION). Det eneste, der vil ændre sig, er hyppigheden af ​​at få den fejl.




  1. Hvad er den bedste måde at gemme mediefiler på en database?

  2. normalisering af karakterer med accent i MySQL-forespørgsler

  3. Brug af LogMiner til at finde aktuelle ændringer

  4. Ukendt kolonne i 'feltliste'-fejl på MySQL Update-forespørgsel