0
私はmysql dbと対話するためにmysql.connectorを使用しています。 myscriptの開始時にdb接続を作成し、select/insert/updateなどのすべてのデータベースアクティビティに対して同じ接続を再利用します。無作為に次の例外が発生します。python mysql.connector mysql接続が利用できないエラー
MySQL接続が利用できません。
Traceback (most recent call last):
File "database.py", line 46, in query
cursor = self.connection.cursor(buffered=True, dictionary=True)
File "lib/python3.4/site-packages/mysql/connector/connection.py", line 807, in cursor
raise errors.OperationalError("MySQL Connection not available.")
mysql.connector.errors.OperationalError: MySQL Connection not available.
2017-12-08 13:16:03,845 ERROR util.py 1247 MySQL Connection not available.
上記のエラーの原因は何ですか?
import mysql.connector
class Database:
"""
Simple Database class
"""
def __init__(self, db_conf, logger):
self.logger = logger
try:
self.connection = mysql.connector.connect(host=db_conf['host'], user=db_conf['user'], password=db_conf['password'],
database=db_conf['db'], port=db_conf['port'])
except Exception as e:
self.logger.exception(e)
raise
def insert_or_update(self, query, type):
"""
Transactional query
"""
try:
cursor = self.connection.cursor(buffered=True)
cursor.execute(query)
self.connection.commit()
if type == 'insert':
last_row_id = cursor.lastrowid
cursor.close()
return last_row_id
elif type == 'update':
row_count = cursor.rowcount
cursor.close()
return row_count
except Exception as e:
self.connection.rollback()
self.logger.info(query)
self.logger.exception(e)
raise
def query(self, query):
"""
Non transactional query
"""
try:
cursor = self.connection.cursor(buffered=True, dictionary=True)
cursor.execute(query)
self.connection.commit()
result = cursor.fetchall()
cursor.close()
return result
except Exception as e:
self.logger.info(query)
self.logger.exception(e)
raise
あなたのコードを投稿に表示します。 –
コードが更新されました – Jenish