SQLSTATE [HY000] [2002]权限被拒绝

时间:2016-01-08 09:33:58

标签: php database laravel-4 database-connection

我收到此错误并不知道原因 SQLSTATE[HY000] [2002] Permission denied 这是我试图上传文件example.com的网站。

4 个答案:

答案 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远程服务器的网络连接,设置设置它的布尔变量:

  1. 关闭httpd服务# service httpd stop
  2. # setsebool httpd_can_network_connect 1
  3. # setsebool httpd_can_network_connect_db 1
  4. 启动httpd服务# service httpd start
  5. 现在您的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