【发布时间】:2018-11-01 04:20:35
【问题描述】:
我有一个在 Google Compute Engine 实例上运行的 Laravel 应用程序。我已将其配置为连接到 Cloud SQL 数据库实例,当我通过 SSH 连接到 VM 并运行 php artisan migrate 时,一切运行顺利。但是当我在浏览器中打开应用程序时,我收到此错误SQLSTATE[HY000] [2002] Permission denied 我无法弄清楚这里出了什么问题,我尝试了云 sql 代理,但从浏览器访问时应用程序仍然无法建立数据库连接。谁能找出这种奇怪行为的原因。
【问题讨论】:
-
你能提供更多的日志吗?
SQLSTATE[HY000] [2002] Permission denied可能由多种因素引起。我的猜测是selinux。尝试禁用它。如果它在禁用时工作,请重新启用它并在您的 laravel 实例上执行以下命令。sudo setsebool -P httpd_can_network_connect_db=1 -
似乎问题在于 selinux 阻止了 Web 服务器连接到远程数据库。启用 httpd_can_network_connect_db 解决了这个问题。感谢@IlyasDeckers 指出这一点。
-
为了帮助社区,请将其作为答案发布为通过启用“httpd_can_network_connect_db”解决的问题。
标签: laravel google-compute-engine google-cloud-sql