我有一个弹性 beanstalk ec2 (Amazon Linux 2023) 实例和一个在同一区域内创建并使用相同 VPC 的 RDS 数据库 (MariaDB 10.11),我的数据库只能通过 ssh 隧道访问, 我在 ec2 中部署了一个 laravel 应用程序,并带有以下数据库的 .env 凭据:
RDS_HOSTNAME=prod-example-db.dafsfduieeikka0.eu-west-1.rds.amazonaws.com
RDS_PORT=3306
RDS_DB_NAME=db_name
RDS_USERNAME=db_username
RDS_PASSWORD=mydbpassword
根据用于部署 Laravel 应用程序的 aws ebs 文档,我修改了 Laravel 的 config/database.php 文件的一部分,如下所示:
'host' => env('RDS_HOSTNAME', '127.0.0.1'),
'port' => env('RDS_PORT', '3306'),
'database' => env('RDS_DB_NAME', 'forge'),
'username' => env('RDS_USERNAME', 'forge'),
'password' => env('RDS_PASSWORD', ''),
现在,当我尝试访问我的网站时,我收到 SQLSTATE[HY000] [1045] 用户“db_user”@“ip_address”访问被拒绝(使用密码:YES),有人可以告诉我问题是什么吗? 我是否必须创建从 ec2 内部到 RDS 数据库的 ssh 隧道才能允许连接?
只需在 .env 文件中使用引号将我的密码括起来,这解决了我的问题。
RDS_PASSWORD='mydbpassword'
谢谢你们。