1205: Lock wait timeout exceeded; try restarting transaction (Timeout beim Warten auf Sperre; Transaktion neu starten)
MySQLWas bedeutet das?
Eine Transaktion hat innodb_lock_wait_timeout Sekunden auf eine benötigte Zeilensperre gewartet, sie nicht erhalten und ist in einen Timeout gelaufen.
Ursache
Eine andere Transaktion hält die Sperre lange ohne Commit oder Rollback; inaktive offene Transaktionen, lang laufende Massen-Updates oder umkämpfte Hot Rows.
Lösung
Finde die blockierende Transaktion: Verknüpfe performance_schema.data_lock_waits mit data_locks (in älteren Versionen information_schema.innodb_lock_waits/innodb_trx). Committe die blockierende Transaktion, setze sie zurück oder beende sie bei Bedarf mit KILL <trx_mysql_thread_id>. Halte Transaktionen kurz und lass keine Transaktionen inaktiv offen (autocommit/Anwendungslogik). Passe innodb_lock_wait_timeout bei Bedarf an die Last an.
Weitere Einträge zu dieser Datenbank
- 1045Access denied for user (using password: YES/NO) (Zugriff für Benutzer verweigert)
- 1062Duplicate entry for key (doppelter Eintrag für Schlüssel)
- 1213Deadlock found when trying to get lock; try restarting transaction (Deadlock beim Anfordern einer Sperre; Transaktion neu starten)
- 1040Too many connections (zu viele Verbindungen)
- 1064You have an error in your SQL syntax (Fehler in der SQL-Syntax)
- 1146Table doesn't exist (Tabelle existiert nicht)
- 1054Unknown column in field list (unbekannte Spalte in der Feldliste)