2

尝试生成应用程序时出现以下错误。

我有一个带有我的数据库登录信息的 database.yml,但不确定这个错误到底是什么。有谁知道它是什么?

我假设它是验证登录到测试数据库。

4

3 回答 3

5

确保为development环境配置了您的数据库用户名和密码,而不仅仅是test环境。初始 Rails 应用程序设置在那里。

test数据库由测试使用,例如rake specor rake test,并且development当您使用诸如rails generateor之类的 Rails 时使用该数据库rails console

一个典型的设置如下:

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: foo_development
  pool: 5
  username: db_username
  password: db_password
  socket: /tmp/mysql.sock

test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: foo_test
  pool: 5
  username: db_username
  password: db_password
  socket: /tmp/mysql.sock
于 2013-02-06T21:46:35.933 回答
1

为什么要让 root 用户访问您的应用程序?

建议您创建一个不同的用户并向该用户授予所有权限,然后使用这些凭据配置您的 database.yml。

于 2013-02-08T12:00:33.073 回答
1

我想为此贡献我的答案。这听起来有点业余,但它可能会帮助一些和我有同样问题的可怜的家伙。

我的密码database.yml配置如下:

development:
  <<: *default
  database: my_db_name
  username: my_username
  password: !?my_password913

这是一个新手错误,但它让我搞砸了几分钟。如果您使用特殊字符,请确保用引号括起您的密码,因为 ! 例如将评估为 false 的布尔表达式,这将mysql2忽略密码字段并发送password=no

谢谢!

于 2015-04-17T13:40:39.263 回答