所以我在CentOS上设置了一个MySQL chroot。 MySQL实际上局限于/ opt / chroot / mysql /,我修改了/etc/init.d/mysqld文件,以便一切正常。我可以(以root身份)通过发出命令连接到套接字:
mysql -S /opt/chroot/mysql/var/lib/mysql/mysql.sock
目前,为了简单起见,MySQL root用户没有密码。
但是,由于某些原因,PHP(在Apache中运行)无法连接到同一个套接字。我已经尝试更新php.ini中的MySQL默认套接字变量,以及在建立连接时引用完整的套接字路径,但我总是得到同样的错误:
无法通过套接字连接到本地MySQL服务器'/opt/chroot/mysql/var/lib/mysql/mysql.sock'(13)
有什么想法吗?
更新:我自己找到了解决方案。 SELinux已启用,并且正在阻止Apache的所有连接。
答案 0 :(得分:1)
Apache是否有权遍历/读取该路径中的所有目录?仅仅因为你从命令行以root身份做某事,并不意味着蹲到了Apache。这完全是一个不同的用户ID和不同的环境。