"ping" not reconnecting in Python MySQLdb client interface
John Nagle
nagle at animats.com
Sun Feb 3 12:03:41 EST 2008
JJohn Nagle wrote:
> I have some long-running Python programs that can be idle
> for hours, and, of course, the MySQL connection times out.
> So I call
>
> db.ping()
>
> at the beginning of a new request cycle. This should
> reestablish the connection, but it doesn't.
...
> I suspect that MySQL has auto-reconnect turned off, but doesn't document
> this.
That seems to be the case. MySQLdb.connect turns off auto-reconnect, and
doesn't document "ping".
I'm currently trying this:
if db : # if previously attached
try :
db.ping() # test connection
except MySQLdb.OperationalError, message: # loss of connection
db = None # we lost database connection
if db is None : # if no valid database handle
db = MySQLdb.connect(...) # connect to database
which is a bit ugly.
John Nagle
More information about the Python-list
mailing list