当我跑步时:

bundle exec rails c


我懂了

Mysql2::Error: Access denied for user 'root'@'$HOST' (using password: YES)


尽管这很好用:

mysql -h $HOST -P $PORT -u root -p


这是我的config / database.yml

development:
  &defaults
  adapter: mysql2
  encoding: utf8mb4
  collation: utf8mb4_unicode_ci
  pool: 5
  host: $HOST
  port: $PORT
  database: $DATABASE
  username: root
  password: $PASSWORD
  reconnect: true


我究竟做错了什么?

最佳答案

您不能在config/database.yml中使用bash变量。 Rails将$HOST视为字符串"$HOST",这就是您在此处看到的情况


  Mysql2 :: Error:用户'root'@'$ HOST'的访问被拒绝(使用密码:是)


相反,您可以使用ENV

development:
  &defaults
  adapter: mysql2
  encoding: utf8mb4
  collation: utf8mb4_unicode_ci
  pool: 5
  host: ENV['HOST']
  port: ENV['PORT']
  database: ENV['DATABASE']
  username: root
  password: ENV['PASSWORD']
  reconnect: true


相关:http://railsapps.github.io/rails-environment-variables.html

关于mysql - 无法从Rails连接到远程mysql服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17023252/

10-13 05:58
查看更多