我收到此错误并不知道原因
SQLSTATE[HY000] [2002] Permission denied
这是我试图上传文件example.com
的网站。
答案 0 :(得分:15)
这是因为selinux避免了从httpd服务器到远程数据库服务器的数据库连接。要解决这个问题,您需要通过ssh访问您的服务器,或者如果您有pretencial acces,只需打开一个控制台,然后执行以下操作:
如果管理端口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服务器到db远程服务器的网络连接,设置设置它的布尔变量:
# service httpd stop
# setsebool httpd_can_network_connect 1
# setsebool httpd_can_network_connect_db 1
# service httpd start
现在您的httpd服务应该能够从数据库服务器获取数据。
我希望这对搜索解决此类错误的团伙有用。
来自智利,最好的问候。
答案 1 :(得分:3)
进入.env文件并将DB_HOST = 127.0.0.1更改为DB_HOST = localhost
答案 2 :(得分:0)
也许您需要关闭selinux 就是这样
setenforce 0
答案 3 :(得分:0)
我可以迟到回答这个问题,但对我有用的是命令。 我遇到了同样的问题,然后我运行了以下命令。
提供权限:
chmod -R 777 .
(虽然不推荐)
运行安装升级命令
php bin/magento setup:ugrade
最后编译命令
php bin magento setup:di:compile