Php Laravel无法连接到Amazon RDS中的MySQL,但可以通过命令行连接
我正在从事Laravel项目,该项目位于AWS EC2(Ubuntu)上,RDS(MySQL)位于同一VPC上。 我可以通过命令行连接到MySQL,但当Laravel应用程序尝试连接到数据库时,访问被拒绝 用户的SQLSTATE[HY000][1045]访问被拒绝 “用户名”@“IP地址”(使用密码:Y ES)(SQL:select*from)Php Laravel无法连接到Amazon RDS中的MySQL,但可以通过命令行连接,php,mysql,laravel,amazon-web-services,amazon-rds,Php,Mysql,Laravel,Amazon Web Services,Amazon Rds,我正在从事Laravel项目,该项目位于AWS EC2(Ubuntu)上,RDS(MySQL)位于同一VPC上。 我可以通过命令行连接到MySQL,但当Laravel应用程序尝试连接到数据库时,访问被拒绝 用户的SQLSTATE[HY000][1045]访问被拒绝 “用户名”@“IP地址”(使用密码:Y ES)(SQL:select*from) tablename) 下面是我在.env文件中的数据库配置: DB_HOST=verylonghostname.rds.amazonaws.com
tablename
)
下面是我在.env文件中的数据库配置:
DB_HOST=verylonghostname.rds.amazonaws.com
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=dbusername
DB_PASSWORD=dbpassword
可能是什么问题?我如何解决它?我尝试为laravel创建另一个db用户,结果成功了! 显然,如果我使用db用户名“admin”,连接将被拒绝。
也许这是AWS的一种安全措施。当你说你可以通过命令行连接时,这是你SSH到EC2服务器的时候吗?它是否使用与Laravel尝试使用的相同的用户名和密码?另外,当您在命令行中连接时,您是否可以从数据库中查询larvel尝试进行的操作?如果larvel执行了
选择CURRENT_USER()
操作,则该回答的主机部分是否包括您连接的IP地址范围?@apokryfos yes I ssh到ec2服务器,然后使用与Laravel env文件中相同的用户和密码连接到rds。我也可以毫无问题地查询同一个数据库。