python连接数据库mysql失败_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

这个是2113我以前项目中使用python链接5261mysql的例子,你可以参考一下。

如果解决4102了您的问题请采纳!

如果未解1653决请继续追问!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值