目錄
重新連接 MySQL 用戶端與 MySQLdb
首頁 資料庫 mysql教程 如何使用 MySQLdb 和 MySQL Connector/Python 在 Python 中重新連接 MySQL 用戶端?

如何使用 MySQLdb 和 MySQL Connector/Python 在 Python 中重新連接 MySQL 用戶端?

Nov 13, 2024 pm 02:23 PM

How to Reconnect MySQL Clients in Python with MySQLdb and MySQL Connector/Python?

重新連接 MySQL 用戶端與 MySQLdb

在資料庫連線領域,維持持久連線對於不間斷的資料存取至關重要。 MySQLdb 是一個流行的與 MySQL 資料庫介面的 Python 函式庫,它提供了一種在連線失敗時自動重新連線客戶端的方法。

在先前的版本中啟用自動重新連接

在早期版本的MySQLdb 中,可以透過mysql_options() 函數啟動自動重新連接功能,如下所示:

1

2

my_bool reconnect = 1

mysql_options(&mysql, MYSQL_OPT_RECONNECT, &reconnect)

登入後複製

但是,隨著MySQL Connector/Python的出現,底層實作發生了變化,這種方式不再適用。

MySQL Connector/的解決方案Python

要在 MySQL Connector/Python 中實作自動重連,需要自訂 Cursor 物件的行為。以下程式碼片段示範了這個方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

import MySQLdb

 

class DB:

  conn = None

 

  def connect(self):

    self.conn = MySQLdb.connect()

 

  def query(self, sql):

    try:

      cursor = self.conn.cursor()

      cursor.execute(sql)

    except (AttributeError, MySQLdb.OperationalError):

      self.connect()

      cursor = self.conn.cursor()

      cursor.execute(sql)

    return cursor

 

db = DB()

sql = "SELECT * FROM foo"

cur = db.query(sql)

# wait a long time for the Mysql connection to timeout

cur = db.query(sql)

# still works

登入後複製

說明

此程式碼定義了包裝Cursor.execute() 方法的自訂query() 方法。如果發生連線錯誤(AttributeError 或 MySQLdb.OperationalError),query() 方法會嘗試重新連線到資料庫,然後重新執行查詢。

透過在遊標對象,可以確保你的Python腳本即使MySQL連線間歇性遺失也能繼續運作。這種方法提供了一種更強大、更可靠的方式來維護資料庫連線。

以上是如何使用 MySQLdb 和 MySQL Connector/Python 在 Python 中重新連接 MySQL 用戶端?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

減少在Docker中使用MySQL內存的使用 減少在Docker中使用MySQL內存的使用 Mar 04, 2025 pm 03:52 PM

減少在Docker中使用MySQL內存的使用

如何使用Alter Table語句在MySQL中更改表? 如何使用Alter Table語句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

如何使用Alter Table語句在MySQL中更改表?

mysql無法打開共享庫怎麼解決 mysql無法打開共享庫怎麼解決 Mar 04, 2025 pm 04:01 PM

mysql無法打開共享庫怎麼解決

什麼是 SQLite?全面概述 什麼是 SQLite?全面概述 Mar 04, 2025 pm 03:55 PM

什麼是 SQLite?全面概述

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) 在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) Mar 04, 2025 pm 03:54 PM

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)

在MacOS上運行多個MySQL版本:逐步指南 在MacOS上運行多個MySQL版本:逐步指南 Mar 04, 2025 pm 03:49 PM

在MacOS上運行多個MySQL版本:逐步指南

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? 哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? Mar 21, 2025 pm 06:28 PM

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼?

如何為MySQL連接配置SSL/TLS加密? 如何為MySQL連接配置SSL/TLS加密? Mar 18, 2025 pm 12:01 PM

如何為MySQL連接配置SSL/TLS加密?

See all articles