我使用 nginx 作为前端服务器,使用 uwsgi 作为 python 应用程序。大约一天有一次我的应用程序开始下降。在日志中我可以看到不同的 mysql 错误。例如:
sqlalchemy.exc.OperationalError: (OperationalError) (2006, 'MySQL server has gone away')
或
sqlalchemy.exc.OperationalError: (OperationalError) (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)") None None
此外,还有一些关于无法找到列的行列...
的信息。也许更有趣:
--- no python application found, check your startup logs for errors ---
有什么帮助 - 我正在终止我的 uwsgi 进程并再次运行它。有趣的是其他应用程序(他们也使用 mysql)都可以并继续工作。
如果我只是杀死 fork ,什么也不会发生。我必须杀死主进程。
我的 uwsgi 配置是:
module = stulyev
callable = app
pp = /home/krasulya/apps/stulyev.net
logto = /var/log/stulyev.net.log
touch-reload = /tmp/stulyev.net.sock
socket = /tmp/stulyev.net.sock
uid = krasulya
gid = www-data
daemonize = /var/log/stulyev.net.daemon.log
reload-on-exception = true
harakiri = 30
max-requests = 10000
harakiri-verbose = 1
buffer-size = 65535
我能做什么?谢谢。
最佳答案
不要在master中打开数据库连接。并非所有 sqlalchemy 适配器都支持它。每个worker打开一次连接,或者将lazy-apps = true添加到uWSGI以在每个 fork 时加载整个应用程序:http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html
关于python - 启动应用程序一段时间后,nginx、uwsgi、python 出现永久 mysql 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25904817/