mysql - Laravel 权限在远程 Mysql 服务器 (AWS aurora) 上被拒绝

标签 mysql laravel amazon-web-services

我有一个带有 Laravel 应用程序的 centos EC2。我还在同一个 EC2 实例上安装了 MySQL。它工作正常。

现在我决定将 MYSQL 迁移到 AWS RDS (MySQL Aurora)。我可以通过 Heidi 连接到 AWS RDS 并毫无问题地进行查询。

但是在 Laravel 中它会抛出异常。 我更改了 DB_HOST、DB_DATABASE、DB_USERNAME、DB_PASSWORD 的 .env 文件凭据。

请参阅下面的异常(exception)情况:

1/3 PDOException in PDOConnection.php line 43:
SQLSTATE[HY000] [2002] Permission denied
1. in PDOConnection.php line 43
2. at PDO->__construct('mysql:host=correct_host;port=3306;dbname=correct_db', 'correct_username', 'correct_password', array('0', '2', '0', false, false)) in PDOConnection.php line 43

1/2 PDOException in PDOConnection.php line 47:
SQLSTATE[HY000] [2002] Permission denied

1/3 QueryException in Connection.php line 770:
SQLSTATE[HY000] [2002] Permission denied (SQL: select * from `users` where `users`.`id` = 1 limit 1)

更新

我刚刚将 .env 中的数据库凭证恢复到我的旧 MySQL(安装在与 Laravel 应用程序相同的 EC2 实例上)。 它与 DB_HOST=localhost 配合使用,但如果我使用实际的 ip,DB_HOST=127.0.0.1,它会抛出相同的异常。

最佳答案

如果您在 centos EC2 上运行 SELinux,请尝试关闭 SELinux 并再次测试您的应用程序。如果是 SELinux 导致了这个问题,很可能是因为外部连接到数据库的策略。您应该重新打开 SELinux 并使用此命令启用该策略。

sudo setsebool -P httpd_can_network_connect_db=1

关于mysql - Laravel 权限在远程 Mysql 服务器 (AWS aurora) 上被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42937925/

相关文章:

database - Laravel - 如何制作一个将列添加到数据库表的按钮

php - 如何获取关系数据库中列的总和 "Laravel5"

javascript - 从 laravel 5 中的另一个目录获取 Assets

ruby-on-rails - 连接到 S3 时获取 "SSL_connect returned=1 errno=0 state=error: certificate verify failed"

amazon-web-services - curl : (35) Cannot communicate securely with peer: no common encryption algorithm(s)

mysql - PhpMyAdmin 数据库莫名其妙消失了

mysql - 一起使用 orderby 和 group by

mysql - 为什么 MySQL 不使用我的索引?优化mysql select查询

mysql - 从单列中选择多个值

c++ - AWS CPP S3 SDK 是否支持 "Transfer acceleration"