【问题标题】:MySQL connection times out after a while (Python, MySQL, FLASK)一段时间后 MySQL 连接超时(Python、MySQL、FLASK)
【发布时间】:2017-03-15 13:55:54
【问题描述】:

我目前在 uWGI 的帮助下在 NGINX 服务器上运行一个烧瓶 python 应用程序。静态页面始终可访问,但使用连接 (MySQL) 的页面在 2 分钟后超时。这是怎么回事?它们变得简单地变得不可用。

我尝试过的事情:

  • 不使用全局
  • 使用池
  • 关闭防火墙

.

# using python version 2.7.10
from flask import Flask, jsonify, request, session
import mysql.connector.pooling

#Make a connection with the DB

dbconfig = {
  "host" : "12.34.5.78",
  "database": "db",
  "user":     "user",
  "password": "pass"
}

conn = mysql.connector.connect(pool_name = "mypool",
                      pool_size = 6,
                      **dbconfig)

#Define the root
app = Flask(__name__)

#Landings page
@app.route('/')
def index():
    return "Hello World."

# return all resources by name
@app.route('/resources', methods=['GET'])
def allResourceNames():
    conn1 = mysql.connector.connect(pool_name="mypool")
    reader = conn1.cursor()
    query = ("SELECT name FROM resources")
    reader.execute(query)
    resources = []
    for name in reader:
    resources.append({'name' : name[0]})
    reader.close()
    conn1.close()
    return jsonify({"resources" : resources})

if __name__ == "__main__":
    app.run(debug=True)

【问题讨论】:

    标签: python mysql nginx flask uwsgi


    【解决方案1】:

    根据MySQL Python Connector Doc 您可能希望将connection_timeout 设置为连接选项。例如,

    conn = mysql.connector.connect(pool_name = "mypool",
                      pool_size = 6, connection_timeout=3600,
                      **dbconfig)
    

    【讨论】:

    • 能否请您发布您在帖子中收到的错误消息?谢谢
    • 顺便说一句。但我不确定为什么。我只是更改了 connection_timeout=1 ,现在它实际上快了很多。你能解释一下到底发生了什么吗?
    猜你喜欢
    • 2019-12-28
    • 2011-02-05
    • 1970-01-01
    • 2012-04-02
    • 2019-05-10
    • 1970-01-01
    • 2021-02-18
    • 2011-03-29
    • 2018-07-15
    相关资源
    最近更新 更多