所以我在 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 默认套接字变量,以及在建立连接时引用完整的套接字路径,但我总是得到同样的错误:
无法通过套接字'/opt/chroot/mysql/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(13)
有任何想法吗?
更新:自己找到了解决方案。SELinux 已启用并阻止 Apache 的所有连接。