一、查詢mysql的show variables like “%timeout%”;interactive_timeout服務(wù)器關(guān)閉交互式連接前等待活動(dòng)的秒數(shù) 參數(shù)默認(rèn)值:28800秒(8小時(shí))
在配置文件my.cnf中只設(shè)置參數(shù)interactive_timeout=100或者設(shè)置一個(gè)比較大的值,則重啟服務(wù)器后進(jìn)入或者set global interactive_timeout=28800;重啟mysql服務(wù)器
注:
從文檔上來看wait_timeout和interactive_timeout都是指不活躍的連接超時(shí)時(shí)間,連接線程啟動(dòng)的時(shí)候wait_timeout會(huì)根據(jù)是交互模式還是非交互模式被設(shè)置為這兩個(gè)值中的一個(gè)。
如果我們運(yùn)行
mysql -uroot -p
命令登陸到mysql,wait_timeout就會(huì)被設(shè)置為interactive_timeout的值。如果我們?cè)趙ait_timeout時(shí)間內(nèi)沒有進(jìn)行任何操作,那么再次操作的時(shí)候就會(huì)提示超時(shí),這是mysql client會(huì)重新連接。
interactive_timeout和wait_timeout在連接空閑階段(sleep)起作用,對(duì)于保持sleep狀態(tài)超過了wait_timeout(或interactive_timeout,取決于CLIENT_INTERACTIVE標(biāo)志)的客戶端,MySQL會(huì)主動(dòng)斷開連接。
可以用set命令或在my.cnf文件中設(shè)置,設(shè)置后需要重啟數(shù)據(jù)庫
二、conn = None
def _conn(): # 連接帶異常處理
try:
global conn
conn = MySQLdb.connect(host="localhost", user="root", passwd="123456", db="xhaccount", port=3306,
charset="utf8") # 連接對(duì)象
return True
except Exception as e:
print("str(Exception):\t", str(e))
print("str(e):\t\t", str(e))
print("repr(e):\t", repr(e))
# Get information about the exception that is currently being handled
exc_type, exc_value, exc_traceback = sys.exc_info()
print('e.message:\t', exc_value)
print("Note, object e and exc of Class %s is %s the same." %
(type(exc_value), ('not', '')[exc_value is e]))
print('traceback.print_exc(): ', traceback.print_exc())
return False
def _reConn(): # 重試連接
try:
conn.ping() # 校驗(yàn)連接是否異常
except Exception as e:
if _conn() is True: # 重新連接,成功退出
return
print("str(Exception):\t", str(e))
print("str(e):\t\t", str(e))
print("repr(e):\t", repr(e))
# Get information about the exception that is currently being handled
exc_type, exc_value, exc_traceback = sys.exc_info()
print('e.message:\t', exc_value)
print("Note, object e and exc of Class %s is %s the same." %
(type(exc_value), ('not', '')[exc_value is e]))
print('traceback.print_exc(): ', traceback.print_exc())
print('重連失?。。。。。。。?)
每次執(zhí)行sql語句的時(shí)候,調(diào)用下_reConn()