SQLSTATE[HY000] [2002] 权限被拒绝
2022-08-30 23:56:07
我收到此错误不知道原因,这是我正在尝试上传文件的网站。SQLSTATE[HY000] [2002] Permission denied
example.com
我收到此错误不知道原因,这是我正在尝试上传文件的网站。SQLSTATE[HY000] [2002] Permission denied
example.com
发生这种情况是因为 selinux 避免了从 httpd 服务器到远程数据库服务器的数据库连接。要解决此问题,您需要通过ssh访问您的服务器,或者如果您具有预先访问权限,只需打开控制台并执行以下操作:
如果端口 80 是托管的,则必须签入 SELinux。您可以通过键入列表来检查它,然后检查:# semanage port -l | grep http_port_t
http_port_t tcp 443, 488, 8008, 8009, 8443, 9000
如果需要添加所需的端口,只需键入:
# semanage port -a -t http_port_t -p tcp 80
键入命令以再次执行 ckeck:
# semanage port -l | grep http_port_t
.
http_port_t tcp 80, 443, 488, 8008, 8009, 8443, 9000
然后,您应该通知 SELinux 您希望允许从 httpd 服务器到数据库远程服务器的网络连接,并设置设置它的布尔变量:
# service httpd stop
# setsebool httpd_can_network_connect 1
# setsebool httpd_can_network_connect_db 1
# service httpd start
现在,您的 httpd 服务应该能够从数据库服务器获取数据。
重新启动后,这些更改将不会保留。要使它们永久化,请改为执行以下操作:
# service httpd stop
# setsebool -P httpd_can_network_connect 1
# setsebool -P httpd_can_network_connect_db 1
# service httpd start
不同之处在于“-P”标志。
我希望这对搜索解决此类错误的团伙有用。
进入 .env 文件并将 DB_HOST=127.0.0.1 更改为 DB_HOST=localhost