python - 连接被拒绝 sqlalchemy Flask
问题描述
我在 Ubuntu 18.0、flask_sqlalchemy 和 MYSQL 数据库上运行烧瓶应用程序,当我尝试登录时,有时会出现 500 内部服务器错误,我必须重新启动 MYSQL 服务器和 Apache。
我检查了 serevr 日志,我发现了这个错误,我无法理解它 error.log
ERROR:flask.app:Exception on / [POST], referer: {domain.com}
Traceback (most recent call last):, referer: {domain.com}
File "/usr/local/lib/python3.6/dist-packages/pymysql/connections.py", line 583, in connect, referer: {domain.com}
**kwargs), referer: {domain.com}
File "/usr/lib/python3.6/socket.py", line 724, in create_connection, referer: {domain.com}
raise err, referer: {domain.com}
File "/usr/lib/python3.6/socket.py", line 713, in create_connection, referer: {domain.com}
sock.connect(sa), referer: {domain.com}
ConnectionRefusedError: [Errno 111] Connection refused, referer: {domain.com}
, referer: {domain.com}
During handling of the above exception, another exception occurred:, referer: {domain.com}
, referer: {domain.com}
Traceback (most recent call last):, referer: {domain.com}
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect, referer: {domain.com}
return fn(), referer: {domain.com}
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1805, in full_dispatch_request, referer: {domain.com}
rv = self.dispatch_request(), referer: {domain.com}
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1791, in dispatch_request, referer: {domain.com}
return self.view_functions[rule.endpoint](**req.view_args), referer: {domain.com}
File "/var/www/Dashboard/dashboard/routes.py", line 23, in login, referer: {domain.com}
User = db.session.query(Users).filter_by(Email = request.form['Email']).first(), referer: {domain.com}
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_bcrypt import Bcrypt
from flask_login import LoginManager
app = Flask(__name__)
app.config['SECRET_KEY'] = 'SECRET_KEY'
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://username:password@localhost/database"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
bcrypt = Bcrypt(app)
login_manager = LoginManager(app)
login_manager.login_view = 'login'
from dashboard import routes
from dashboard import api
解决方案
每次我执行 POST 或 GET 请求时,我的内存都会导致 MySQL 服务器崩溃。
我使用的是 Ubuntu DigitalOcean droplet 25GB 存储和 1GB RAM,以及 APACHE 服务器和 MYSQL 服务器。
我所做的是在独立的 Droplet 中运行 MySQL 服务器并远程连接烧瓶应用程序,它工作非常稳定。
谢谢,
推荐阅读
- javafx - 如何从其他包中实例化 Javafx 控制器中的接口?
- java - 反序列化可能具有不同类型的 JSON 字段
- wordpress - 特色图片选项的调试建议 (add_theme_support('post-thumbnails'))
- machine-learning - 如何将连续的 cosine-theta 分数压缩为离散(0/1)输出?
- c++ - 如何解决 C++ 多继承中的函数名冲突?
- python - 为什么我的 Flask 网站没有运行 CSS 文件?
- javascript - matchMedia().addListener 标记为已弃用,addEventListener 等效?
- javascript - 在 Javascript 数组中,是否应该在删除之前检查一个值?
- c++ - Eclipse CDT 包含文件夹
- php - “如何在本地运行已经创建好的 WordPress 网站”?