Rumah > pangkalan data > tutorial mysql > Bagaimana untuk menyambung semula Pelanggan MySQL dalam Python dengan MySQLdb dan MySQL Connector/Python?

Bagaimana untuk menyambung semula Pelanggan MySQL dalam Python dengan MySQLdb dan MySQL Connector/Python?

Patricia Arquette
Lepaskan: 2024-11-13 14:23:02
asal
766 orang telah melayarinya

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

Menyambung semula Pelanggan MySQL dengan MySQLdb

Dalam bidang ketersambungan pangkalan data, mengekalkan sambungan yang berterusan adalah penting untuk akses data tanpa gangguan. MySQLdb, perpustakaan Python yang popular untuk antara muka dengan pangkalan data MySQL, menyediakan cara untuk menyambung semula pelanggan secara automatik sekiranya berlaku kegagalan sambungan.

Mendayakan Auto-Sambung Semula dalam Versi Sebelumnya

Dalam versi MySQLdb yang lebih awal, fungsi auto-sambung semula boleh diaktifkan melalui fungsi mysql_options(), seperti yang ditunjukkan di bawah:

my_bool reconnect = 1
mysql_options(&mysql, MYSQL_OPT_RECONNECT, &reconnect)
Salin selepas log masuk

Walau bagaimanapun, dengan kemunculan MySQL Connector/Python, pelaksanaan asas telah berubah , dan pendekatan ini tidak lagi terpakai.

Penyelesaian untuk MySQL Connector/Python

Untuk mencapai penyambungan semula automatik dalam MySQL Connector/Python, adalah perlu untuk menyesuaikan Gelagat objek kursor. Coretan kod berikut menunjukkan pendekatan ini:

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
Salin selepas log masuk

Penjelasan

Kod ini mentakrifkan kaedah pertanyaan tersuai() yang membalut kaedah Cursor.execute(). Jika ralat sambungan berlaku (sama ada AttributeError atau MySQLdb.OperationalError), kaedah query() akan cuba menyambung semula ke pangkalan data dan kemudian melaksanakan semula pertanyaan.

Dengan melaksanakan mekanisme penyambungan semula automatik ini dalam Objek kursor, anda boleh memastikan bahawa skrip Python anda boleh terus beroperasi walaupun sambungan MySQL terputus seketika. Pendekatan ini menyediakan cara yang lebih teguh dan boleh dipercayai untuk mengekalkan ketersambungan pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk menyambung semula Pelanggan MySQL dalam Python dengan MySQLdb dan MySQL Connector/Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan