【发布时间】:2016-04-12 22:25:06
【问题描述】:
我收到此错误不知道原因
SQLSTATE[HY000] [2002] Permission denied
这是我尝试上传文件的网站example.com。
【问题讨论】:
-
您必须更改/设置应用程序中的 MYSQL 数据库用户名和密码,以匹配您或您的托管公司设置的内容
标签: php database laravel-4 database-connection
我收到此错误不知道原因
SQLSTATE[HY000] [2002] Permission denied
这是我尝试上传文件的网站example.com。
【问题讨论】:
标签: php database laravel-4 database-connection
这是因为 selinux 避免了从 httpd 服务器到远程 db 服务器的 db 连接。要解决这个问题,您需要通过 ssh 访问您的服务器,或者如果您有 pretencial 访问权限,则只需打开一个控制台并执行以下操作:
如果端口 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
再次键入要检查的命令:
# 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 服务应该能够从 db 服务器获取数据了。
这些更改在重新启动后不会保留。要使它们永久化,请执行以下操作:
# service httpd stop
# setsebool -P httpd_can_network_connect 1# setsebool -P httpd_can_network_connect_db 1# service httpd start
区别在于“-P”标志。
我希望这对搜索解决此类错误的帮派有用。
【讨论】:
我可能迟到了回答这个问题,但对我有用的是命令。 我遇到了同样的问题,然后我运行了以下命令。
提供权限:
chmod -R 777 .(虽然不推荐)
运行安装升级命令
php bin/magento setup:ugrade
最后编译命令
php bin magento setup:di:compile
【讨论】:
也许你需要关闭你的 selinux 就这样
setenforce 0
【讨论】:
进入 .env 文件并将 DB_HOST=127.0.0.1 更改为 DB_HOST=localhost
【讨论】: