3

我从我的 rails 应用程序连接到 DB 时遇到问题。

我已经为 database.yml 文件提供了凭据:

development: &development
  adapter: mysql2
  encoding: utf8
  database: myapp_dev
  pool: 5
  username: root
  password: passoword

test:
  <<: *development
  database: myapp_test

production:
  <<: *development
  database: myapp_prod

staging:
  <<: *development
  database: myapp_staging

但是当我尝试运行该应用程序时,它给了我以下错误:

Access denied for user 'root'@'localhost' (using password: NO)

使用mysql -u root -p相同的凭据,我可以毫无问题地访问我的数据库。有人可以告诉我这里可能有什么问题吗?

编辑:

我已将用户从 root 更改为其他用户,但它仍然给我同样的错误。所以显然它使用其他一些凭据来连接到数据库。

4

2 回答 2

2

我遇到了同样的问题。事实证明这是我的database.yml文件中的错误。这是我的database.yml文件的样子:

production:
  adapter: mysql2
  encoding: utf8
  database: my_db
  username: my_db_user
  password: !strong_password
  host: localhost
  port: 3306
  pool: 5
  timeout: 5000

密码开头的!字符不是有效的 YAML 标记(至少对于我想要实现的)。在密码周围加上引号 ( '') 可以解决此问题。这是更新的database.yml文件:

 production:
      adapter: mysql2
      encoding: utf8
      database: my_db
      username: my_db_user
      password: '!strong_password'
      host: localhost
      port: 3306
      pool: 5
      timeout: 5000
于 2014-12-16T23:30:42.640 回答
0

试试下面的代码,如果可行,我们可以继续
在 database.yml 中注释所有以前的代码并粘贴以下内容

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: myapp_dev
  pool: 5
  username: root
  password: passoword
  host: localhost
于 2013-08-20T12:06:13.030 回答