RDS连接被拒绝从Laravel应用程序访问



我已经尝试了许多堆栈溢出的解决方案,但仍然在这个问题上挣扎。问题是:

  1. 首先,我已经将我的IP白名单,公共可访问性为。甚至我在安全组中设置了所有流量访问为true。
  2. 然后我尝试从我的PC终端通过以下命令Mysql -h ************.rds.amazonaws.com——port=3306 -u username -p连接RDS Mysql然后我成功连接到mysql.
  3. 但是当我试图从同一台PC的laravel应用程序连接RDS MySQL数据库时,它说">SQLSTATE[HY000][1045]访问拒绝用户'username'@'my- PC -ip'(使用密码:YES) (SQL: select count(*) as aggregate fromstudents)">
  4. 我想知道为什么它说username@my-pc-ip而不是username@rds-mysql-host?

。env文件

DB_HOST=*******.rds.amazonaws.com
DB_PORT=3306
DB_CONNECTION=mysql
DB_DATABASE=mydb
DB_USERNAME=username
DB_PASSWORD=mypassword

我还在config文件夹中配置了database.php。

请帮忙??

我也有同样的问题,从我的主机副总裁。我也把我的vps的ip在安全组中列入白名单,当我试图从我的vps服务器(不在aws)连接mysql时,它说同样的问题访问被拒绝username@vps-ip。

任何帮助都将是非常感激的。

这不是网络连接问题,只要你得到一个拒绝访问的消息,那么你的应用程序就能够到达服务器

,因为你可以使用MySQL CLI连接,试着检查用户的密码,因为它可以通过连接客户端IP

而不同。MySQL有两个不同的密码?MySQL默认使用$user/$host/$password比较,因此您当前的设置在MySQL中有两个不同的用户帐户- root和您在命令行中提供的任何用户名。每一个都有自己的密码

检查密码

将密码用单引号或双引号括起来。例如:

DB_PASSWORD="your_strong_password"

如果您的密码包含任何用于括住密码的引号,请使用反斜杠()转义。例如:

DB_PASSWORD='your_password's_strength'

@AWS PS的答案几乎是正确的。但是,它没有回答提问者提出的第4个问题。

我认为消息中显示的客户端ec2 IP地址就像客户端或代理一样,以便不泄露实际的RDS服务器名称。对此有任何评论都很有帮助。

相关内容

最新更新