首页 > 解决方案 > 如何连接到托管在 pythonanywhere 上的 mysql 数据库?

问题描述

我买了一个基本的 6 美元服务器,pythonanywhere它允许连接到他们的服务器。我已经将我的应用程序 ( ) 部署到服务器并设置了本地环境(安装的包、设置路径和环境变量)。我运行了该应用程序,它为我提供了路线,这实际上表明它正在运行。SCPSSHflaskREST API404 page/

但是,当我尝试像/api/users/3例如这样的路线时,它给了我一个error 500(内部服务器错误)。我在服务器上挖掘了一些log文件,发现一个基本上是WSGIWeb 服务器的输出,它是我的烧瓶应用程序的主机。它说数据库通信存在问题。据我了解,它连接成功,但无法从表中查询数据:

 (1044, "Access denied for user 'secret_username'@'%' to database 'test'")

我试图通过 web mysql 控制台解决这个问题,将我的<secret_username>@secret_username.pythonanywhere.com所有特权授予test.*,但它又给了我一个access error。我尝试通过 SSH 连接到作为 mysql 服务器主机的机器并尝试连接到它 -secret_username.mysql.pythonanywhere-services.com但它不允许我通过 ssh 连接到该服务器。

有没有人遇到过这个问题?我几乎可以肯定我的连接设置正确,因为如果它没有建立连接,它会给我一个访问错误消息“使用密码“是”。我在论坛上读过一点,他们建议在与烧瓶应用程序相同的服务器上安装一个 mysql 服务器,但由于某种原因我无法访问 sude,可能是因为我的计划便宜。有任何想法吗?

标签: mysqlpythonanywhere

解决方案


如果您使用的是 PythonAnywhere 提供的 MySQL 数据库,主机名是secret_username.mysql.pythonanywhere-services.com,那么您的数据库将被调用secret_username$test,而不仅仅是test- 请参阅 PythonAnywhere 网站上的“数据库”页面。


推荐阅读