Heim >Datenbank >MySQL-Tutorial >Wie vermeide ich MySQL-Verbindungs-Timeouts in Python?

Wie vermeide ich MySQL-Verbindungs-Timeouts in Python?

Barbara Streisand
Barbara StreisandOriginal
2024-12-08 12:20:16802Durchsuche

How to Avoid MySQL Connection Timeouts in Python?

So konfigurieren Sie das MySQL-Verbindungs-Timeout für Python

Eine häufige Herausforderung beim Herstellen einer Verbindung zu MySQL-Datenbanken über Python ist das standardmäßige Verbindungs-Timeout. Dies kann insbesondere bei lang laufenden Vorgängen zu Fehlern führen. In diesem Artikel erfahren Sie, wie Sie die Standard-Timeout-Einstellungen ändern und solche Probleme entschärfen können.

Bestimmen der Standard-Timeout-Einstellungen

Die Standard-Timeout-Einstellungen für MySQL können variieren Abhängig von der Serverkonfiguration. Um die aktuellen Werte zu überprüfen, stellen Sie über den MySQL-Befehlszeilen-Client (z. B. mysql) eine Verbindung zur Datenbank her. Führen Sie den folgenden Befehl aus:

SHOW VARIABLES LIKE '%timeout%';

Dadurch werden die Timeout-Einstellungen angezeigt. einschließlich:

  • connect_timeout
  • delayed_insert_timeout
  • innodb_lock_wait_timeout
  • innodb_rollback_on_timeout
  • interacti ve_timeout
  • lock_wait_timeout
  • net_read_timeout
  • net_writ e_timeout
  • slave_net_timeout
  • wait_timeout

Änderung das Standard-Timeout

Um die Timeout-Einstellungen zu ändern, stellen Sie mit dem Python-Client (_mysql) eine Verbindung zur Datenbank her. Führen Sie die folgenden Abfragen aus:

con.query('SET GLOBAL connect_timeout=28800')
con.query('SET GLOBAL interactive_timeout=28800')
con.query('SET GLOBAL wait_timeout=28800')

Diese Einstellungen steuern:

  • connect_timeout: Erlaubte Zeit für den Verbindungsaufbau (hier 8 Stunden)
  • interactive_timeout: Maximale Inaktivität Zeitraum für interaktive Verbindungen (8 Stunden)
  • wait_timeout: Maximaler Inaktivitätszeitraum für alle Verbindungen (8 Stunden)

Empfehlung

Für eine Ausführungszeit von 10 Stunden empfiehlt es sich, höhere Timeout-Werte einzustellen (z. B. 32400 Sekunden oder 9 Stunden). Dies verhindert Verbindungsunterbrechungen aufgrund von Timeout-Überschreitungen und gewährleistet einen unterbrechungsfreien Betrieb Ihres Python-Programms.

Das obige ist der detaillierte Inhalt vonWie vermeide ich MySQL-Verbindungs-Timeouts in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn