MariaDB 使用套接字时权限被拒绝

MariaDB 使用套接字时权限被拒绝

以下是我的问题要点:我有一个 Web 应用程序,当数据库的主机设置为 localhost 时,该应用程序无法连接,但如果我使用地址 127.0.0.1,则可以连接。连接时 PHP 给出的错误是:“SQLSTATE[HY000][2002] 权限被拒绝”。我知道套接字在那里,因为当我停止服务时,我得到“SQ:STATE[HY000][2002] 没有这样的文件或目录。”

在终端中输入“ls -als /tmp”后,我看到mysql.sock的权限为777。

知道为什么我无法连接到插座吗?

答案1

您的表是否mysql.user有数据库用户的主机条目?如果没有,那就是MySQL 错误localhost的原因。Permission denied

答案2

在 CentOS 上,罪魁祸首是 SELinux,您可以通过运行以下命令来确认

getsebool -a | grep httpd

检查 httpd_can_network_connect_db 是否已关闭。如果已关闭,您可以使用命令启用它

setsebool -P httpd_can_network_connect_db 1

(-P 标志使更改永久生效,因此设置在重启后仍然有效。)

改编自https://stackoverflow.com/a/41475776/6000657

相关内容