mysql python reconnect
2020.04.24 23:05
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
댓글 2
-
WHRIA
2020.04.24 23:10
-
WHRIA
2020.04.24 23:13
#!/usr/bin/env python import MySQLdb class DisconnectSafeCursor(object): db = None cursor = None def __init__(self, db, cursor): self.db = db self.cursor = cursor def close(self): self.cursor.close() def execute(self, *args, **kwargs): try: return self.cursor.execute(*args, **kwargs) except MySQLdb.OperationalError: self.db.reconnect() self.cursor = self.db.cursor() return self.cursor.execute(*args, **kwargs) def fetchone(self): return self.cursor.fetchone() def fetchall(self): return self.cursor.fetchall() class DisconnectSafeConnection(object): connect_args = None connect_kwargs = None conn = None def __init__(self, *args, **kwargs): self.connect_args = args self.connect_kwargs = kwargs self.reconnect() def reconnect(self): self.conn = MySQLdb.connect(*self.connect_args, **self.connect_kwargs) def cursor(self, *args, **kwargs): cur = self.conn.cursor(*args, **kwargs) return DisconnectSafeCursor(self, cur) def commit(self): self.conn.commit() def rollback(self): self.conn.rollback() disconnectSafeConnect = DisconnectSafeConnection
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
1549 | pytorch pretrained | WHRIA | 2020.10.28 | 168 |
1548 | concat network [3] | WHRIA | 2020.08.27 | 170 |
1547 | usb 3.1 + DP | WHRIA | 2020.01.07 | 172 |
1546 | 페이닥터 등록 | WHRIA | 2014.10.21 | 173 |
1545 | faster rcnn resnet 101 | WHRIA | 2018.09.09 | 175 |
1544 | regression model [6] | WHRIA | 2020.06.18 | 177 |
1543 | Google vs Microsoft: The good, bad, and ugly of the AI arms race | WHRIA | 2023.02.14 | 189 |
1542 | caffe hdf5 error | WHRIA | 2020.06.22 | 190 |
1541 | 진료실 녹음 스크립트 | WHRIA | 2015.12.02 | 191 |
1540 | 고등학교 친구 하나가 죽었다던데... | WHRIA | 2015.01.18 | 192 |
» | mysql python reconnect [2] | WHRIA | 2020.04.24 | 197 |
1538 | excel 에서 소수점 표시 함수 | WHRIA | 2018.11.08 | 199 |
1537 | airplane | WHRIA | 2020.02.10 | 199 |
1536 | 리눅스 samba mount 정리 [1] | WHRIA | 2019.05.26 | 202 |
1535 | sql python | WHRIA | 2020.07.01 | 204 |
https://stackoverflow.com/questions/207981/how-to-enable-mysql-client-auto-re-connect-with-mysqldb