Rumah > Artikel > pangkalan data > Bagaimana untuk menyambung semula Pelanggan MySQL dalam Python dengan MySQLdb dan MySQL Connector/Python?
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 sambung semula automatik boleh diaktifkan melalui fungsi mysql_options(), seperti yang ditunjukkan di bawah:
my_bool reconnect = 1 mysql_options(&mysql, MYSQL_OPT_RECONNECT, &reconnect)
Walau bagaimanapun, dengan kemunculan MySQL Connector/Python, pelaksanaan asas telah berubah, dan pendekatan ini tidak lagi terpakai.
Solution for MySQL Connector/ Python
Untuk mencapai penyambungan semula automatik dalam MySQL Connector/Python, adalah perlu untuk menyesuaikan tingkah laku 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
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!