python 连接mysql 时,connect 出现错误,怎么解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 连接mysql 时,connect 出现错误,怎么解决相关的知识,希望对你有一定的参考价值。
# -*- coding: utf-8 -*-import mysqldb
from MySQLdb.cursors import DictCursor
def catch_2006(func):
"""
To catch MySQL Error 2006 (\'Server has gone away\')
"""
def _(self, *args, **kwargs):
try:
return func(self, *args, **kwargs)
except MySQLdb.Error, e:
print __file__, e
if e.args[0] == 2006 or e.args[0] == 0:
self.reboot_conn()
return func(self, *args, **kwargs)
# todo
# How to deal if not the code
return _
class DB(object):
def __init__(self, host, port, user,
passwd, db, use_unicode=True, charset=\'utf8\'):
self.host = host
self.port = port
self.user = user
self.passwd = passwd
self.db = db
self.use_unicode = use_unicode
self.charset = charset
@property
def conn(self):
if not hasattr(self, \'__conn\'):
self.__conn = MySQLdb.connect(
host=self.host,
port=self.port,
user=self.user,
passwd=self.passwd,
db=self.db,
use_unicode=self.use_unicode,
charset=self.charset
)
return self.__conn
def reboot_conn(self):
if hasattr(self, \'__conn\'):
try:
self.__conn.close()
del self.__conn
except:
pass
@catch_2006
def query(self, sql, args=None):
print sql
cursor = self.conn.cursor()
cursor.execute(sql, args)
cursor.execute(\'commit\')
cursor.close()
@catch_2006
def select(self, sql, args=None, is_dict=False, is_one=False):
# print sql, args
if is_dict:
cursor = self.conn.cursor(cursorclass=DictCursor)
else:
cursor = self.conn.cursor()
cursor.execute(sql, args)
if is_one:
resultset = cursor.fetchone()[0]
else:
resultset = cursor.fetchall()
cursor.close()
return resultset
这个是我以前项目中使用python链接mysql的例子,你可以参考一下。
如果解决了您的问题请采纳!
如果未解决请继续追问!
以上是关于python 连接mysql 时,connect 出现错误,怎么解决的主要内容,如果未能解决你的问题,请参考以下文章
python 远程连接数据库显示can't connect to mysql server on 'lo... 解决方案