gpt4 book ai didi

python - Flask-reSTLess 与 mod_wsgi 无法连接到 MySQL 服务器

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:34 26 4
gpt4 key购买 nike

我正在尝试使用 mod_wsgi 在 apache 中运行 Flask-reSTLess 应用程序。这与开发服务器配合得很好。我已经阅读了我能找到的所有内容,但我所看到的答案似乎都不适合我。该应用程序可以正确处理非数据库请求,但当我尝试访问需要数据库访问权限的网址时,会出现以下错误:

操作错误:(操作错误)(2003,“无法连接到‘localhost’上的 MySQL 服务器([Errno 13] 权限被拒绝)”)无无

我已经通过我的配置和导入的flask-sqlalchemy模型(来自flask import models)将其缩减为基本的flask-reSTLess快速启动。这是我的Python代码:

import flask
import flask.ext.sqlalchemy
import flask.ext.restless
import sys

sys.path.insert(0, '/proper/path/to/application')

application = flask.Flask(__name__, static_url_path = "")
application.debug=True
application.config.from_object('config')

db = flask.ext.sqlalchemy.SQLAlchemy(application)

from app import models

# Create the Flask-Restless API manager.
manager = flask.ext.restless.APIManager(application, flask_sqlalchemy_db=db)

# Create API endpoints, which will be available at /api/<tablename> by
# default. Allowed HTTP methods can be specified as well.
manager.create_api(models.Asset, methods=['GET'])

# start the flask loop
if __name__ == '__main__':
application.run()

我认为 mod_wsgi 在查找包含数据库访问详细信息的 config 文件时没有问题,因为我在读取配置时没有收到错误,而且也没有收到从应用导入模型出现错误。

到目前为止,我的研究让我相信这与存在于错误范围或上下文中的 sql-alchemy 数据库连接有关,并且可能因 Flask-reSTLess API 管理器而变得复杂。我似乎无法理解它。

最佳答案

您在 Apache/mod_wsgi 下的代码将作为特殊的 Apache 用户运行。该用户可能没有连接到数据库所需的权限。

即使它显示“localhost”并且您认为这可能意味着正常的套接字连接,某些数据库客户端也会看到“localhost”并自动尝试使用数据库的 UNIX 套接字。它可能无法访问该 UNIX 套接字连接。

或者,当通过 UNIX 套接字连接时,它会尝试验证 Apache 用户是否具有访问权限,但如果数据库尚未设置为允许 Apache 用户访问,则可能会失败。

考虑使用 mod_wsgi 的守护进程模式,并将守护进程模式配置为与 Apache 用户不同且您知道有权访问数据库的用户身份运行。

关于python - Flask-reSTLess 与 mod_wsgi 无法连接到 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24031230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com