Mar*_*ark 14 ruby yaml ruby-on-rails environment-variables
在我的本地机器上,我想为database.yml文件中的所有敏感信息设置环境变量.我的文件看起来像这样:
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: <%= ENV['DATABASE_USERNAME'] %>
password: <%= ENV['DATABASE_PASSWORD'] %>
socket: <%= ENV['SOCKET'] %>
development:
<<: *default
database: <%= ENV['DEVELOPMENT_DATABASE'] %>
test:
<<: *default
database: #JetStreamIQ-2_0_test
production:
<<: *default
database: <%= ENV['PRODUCTION_DATABASE'] %>
username: <%= ENV['DATABASE_USERNAME'] %>
password: <%= ENV['DATABASE_PASSWORD'] %>
Run Code Online (Sandbox Code Playgroud)
我以为我可以在我的.bashrc文件中设置这些环境变量,但这似乎不起作用.我的.bashrc文件如下所示:
export DATABASE_USERNAME="root"
export DATABASE_PASSWORD="*****"
export SOCKET="/var/run/mysqld/mysqld.sock"
export DEVELOPMENT_DATABASE="shoppe_development"
export PRODUCTION_DATABASE="#"
Run Code Online (Sandbox Code Playgroud)
当我运行我的服务器时
rails s
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
Access denied for user 'root'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
我知道数据库用户名和密码存在问题,因为我已经配置了我的database.yml文件,但我只是不确定它是什么.
这里有什么重要的东西吗?任何帮助将非常感激.
谢谢!
小智 28
我想在这里提供一些提示.
你可以通过erb运行database.yml来测试你得到的东西.例如,erb config/database.yml.这将帮助您确定问题所在.
您可以使用该set命令查找shell中设置的每个环境变量.这将允许您确认您正在设置的环境变量(in .bashrc).
希望这是有帮助的.
这是一个错字还是您确实设置了JETSTREAMIQ_DATABASE_PASSWORD但然后DATABASE_PASSWORD在您的中使用database.yml?因为那样就可以了。
您可以直接使用命令行应用程序使用实际值连接到 mysql 吗mysql?
| 归档时间: |
|
| 查看次数: |
11615 次 |
| 最近记录: |