3

我在使用 heroku db:push 命令将 MySQL 数据库传输到 heroku 时遇到问题。我已经尝试对另一个带有 sqlite3 数据库的应用程序使用相同的命令,一切都很好。

C:\Users\reg\Team-Omni>heroku db:push

Loaded Taps v0.3.9 自动检测到的本地数据库:mysql://127.0.0.1/omni_dev?encoding=utf8 警告:应用程序“growth-mist-42”中的数据将被覆盖且无法恢复。您确定要继续吗?(是/否)?是的

连接数据库失败:

Sequel::DatabaseConnectionError -> Mysql::Error: Access denied for user 'reg'@'localhost' (使用密码: NO)

如果我删除 mysql 匿名帐户的密码,则错误更改为

Sequel::DatabaseConnectionError -> Mysql::Error: Access denied for user ''@'localhost' to database 'omni_dev'

- 附加信息 -

我的 .gems 文件:

导轨-v 2.3.8

andre-geokit --version 1.5.0 --source http://gems.github.com

4

2 回答 2

4

您收到该错误是因为您没有指定本地数据库连接的密码。显然用户名被配置为“reg”(可能在 MySQL 配置文件中)。这与 Heroku PostgreSQL 数据库没有任何关系,它是连接到本地 MySQL 数据库(名为 omni_dev)的问题。

尝试以下连接字符串:

mysql://USERNAME:PASSWORD@127.0.0.1/omni_dev?encoding=utf8

USERNAME 和 PASSWORD 的适当值。

于 2010-08-16T03:27:38.523 回答
1

我也遇到过这个问题,但是我输入了密码。我的本地应用程序运行良好,但是在使用时heroku db:push,我得到了与 redge 相同的错误。

在 database.yml 中添加一个端口解决了这个问题。所以,一个工作的 database.yml 有以下条目:

database: DATABASE   
username: USER   
password: PASSWORD   
adapter: mysql   
encoding: utf8   
socket:  /Applications/MAMP/tmp/mysql/mysql.sock   
port: 8889
于 2011-07-24T01:25:34.683 回答