python - Flask 的 Heroku MySQL 数据库错误

标签 python mysql heroku flask

我正在尝试在 Heroku 上使用 ClearDB 托管本地 MySQL 数据库。构建成功,但是当我尝试访问应用程序时,应用程序失败。

这是我的 app.py 代码(在第一行失败):

db = MySQLdb.connect(host="localhost", user="root", db="database")
cur = db.cursor()
query = """SELECT * from database"""
cur.execute(query)
data = cur.fetchall()

这是日志输出:

2016-06-01T14:48:48.720931+00:00 heroku[web.1]: Starting process with command `python app.py`
2016-06-01T14:48:51.790883+00:00 app[web.1]:   File "app.py", line 30, in <module>
2016-06-01T14:48:51.790864+00:00 app[web.1]: Traceback (most recent call last):
2016-06-01T14:48:51.790910+00:00 app[web.1]:     db = MySQLdb.connect(host="localhost", user="root", db="database")
2016-06-01T14:48:51.790981+00:00 app[web.1]: _mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
2016-06-01T14:48:51.790911+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
2016-06-01T14:48:51.790912+00:00 app[web.1]:     return Connection(*args, **kwargs)
2016-06-01T14:48:51.790912+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/MySQLdb/connections.py", line 193, in __init__
2016-06-01T14:48:51.790937+00:00 app[web.1]:     super(Connection, self).__init__(*args, **kwargs2)
2016-06-01T14:48:52.491629+00:00 heroku[web.1]: Process exited with status 1

这是heroku 配置打印的内容:

CLEARDB_DATABASE_URL: mysql://actualurl
DATABASE_URL:         mysql://actualurl
MYSQL_DB:             database
MYSQL_HOST:           localhost
MYSQL_USER:           root

最佳答案

发布您的 Heroku 配置是没有意义的,因为很明显您的应用程序没有使用它。您已将数据库主机硬编码为“localhost”,而不是使用 DATABASE_URL 环境变量。

关于python - Flask 的 Heroku MySQL 数据库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37573189/

相关文章:

javascript - Heroku Node.js 应用程序崩溃 |模块.js :340 error

python - dateutil.rrule.rrule.between() 只给出现在之后的日期

python - 无法在 us-central1 中更新加密 key

mysql - 选择包含几乎重复的行

mysql - 根据另外两个表更新列值(MySQL)

ruby-on-rails - 如何检查 Resque worker 状态以确定它是死的还是陈旧的

ruby-on-rails - Resque worker 使用 PostgreSQL 服务器失败

python - openstack 无法从 API 检索身份验证 token

python - 在Python3中使用解析器模块计算表达式的时间复杂度(theta)是多少?

php - 如何只通过命令行导出mysql数据库结构,但从指定的列表中导出一些特定的表数据