我正在尝试使用nginx和Passenger在运行Ubuntu的Amazon EC2实例上设置Rails应用程序。我正在使用RDS上托管的Mysql数据库-它不在EC2实例上本地运行。
我的nginx虚拟主机文件如下:
server {
listen 80;
passenger_enabled on;
root /var/www/public;
client_max_body_size 10M;
}
我的database.yml看起来像这样:
default: &default
adapter: mysql2
encoding: utf8
reconnect: false
pool: 40
timeout: 5000
database: <%= ENV['RDS_DB_NAME'] %>
username: <%= ENV['RDS_USERNAME'] %>
password: <%= ENV['RDS_PASSWORD'] %>
host: <%= ENV['RDS_HOSTNAME'] %>
port: <%= ENV['RDS_PORT'] %>
production:
<<: *default
和环境变量都已正确设置为连接到我的远程RDS实例。使用Rails控制台进行连接可以正常工作。
但是,当我尝试运行该应用程序时,在/var/nginx/error.log中出现了这些错误:
[ E 2018-10-28 12:40:22.8485 14984/T6p age/Cor/App/Implementation.cpp:221 ]: Could not spawn process for application /var/www: The application encountered the following error: Access denied for user 'ubuntu'@'localhost' (using password: NO) (Mysql2::Error::ConnectionError)
我不明白为什么旅客要尝试以'ubuntu'@'localhost'进行连接,而不是使用config / database.yml中的信息?我想念什么吗?
非常感谢