当我跑步时:
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/