本文目錄一覽:
- 1、MySQL-python連接MySQL數據庫問題,總是拋異常。
- 2、python連接mysql數據庫出錯,已經嘗試了網上的幾種解決方法
- 3、python 連接mysql 時,connect 出現錯誤,怎麼解決
MySQL-python連接MySQL數據庫問題,總是拋異常。
不要剛開始學多線程編程就這樣玩。connection 和 cursor 都不是線程安全的。
如果測試環境用多個線程,每個線程要在線程裏面獲取自己的 connection,然後從這個connection 獲取 cursor.
如果生產環境用多個線程,建議使用線程安全的連接池。
python連接mysql數據庫出錯,已經嘗試了網上的幾種解決方法
這裡的意思是:數據庫連不上啊。
可能是網絡問題,可能是防火牆問題,可能是3306端口沒開。你先排除這些問題吧。用一些mysql工具連接測試看,比如SQLyog 測試。
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的例子,你可以參考一下。
如果解決了您的問題請採納!
如果未解決請繼續追問!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/245928.html