私は今それを動かしています。プールされた接続を使用すると、問題が解決したようです。
mysql.connector.connect(
host='10.0.0.25',
user='xxxxxxx',
passwd='xxxxxxx',
database='xxxxxxx',
pool_name='batman',
pool_size = 3
)
def connection():
"""Get a connection and a cursor from the pool"""
db = mysql.connector.connect(pool_name = 'batman')
return (db, db.cursor())
connection()
を呼び出します 各クエリ関数の前にカーソルと接続を閉じてから戻ります。動作しているようです。それでも、より良い解決策を受け入れることができます。
編集
それ以来、私はより良い解決策を見つけました。 (私はまだ時々プールされた接続で問題に遭遇していました)。実際には、mysql接続を処理するためのFlask専用のライブラリがあります。これは、ほとんどドロップインの代替品です。
bashから:pip install Flask-MySQL
MYSQL_DATABASE_HOST
を追加します 、MYSQL_DATABASE_USER
、MYSQL_DATABASE_PASSWORD
、MYSQL_DATABASE_DB
あなたのFlask設定に。次に、Flask Appオブジェクトを含むメインのPythonファイルで:
from flaskext.mysql import MySQL
mysql = MySQL()
mysql.init_app(app)
そして、接続を取得するには:mysql.get_db().cursor()
他のすべての構文は同じであり、それ以来問題は発生していません。このソリューションを長い間使用しています。