#2002-Can'tconnecttolocalMySQLserverthroughsocket'/var/run/mysql/mysql.sock'(2)
道理很简单,因为你的mysql_connect是一个localhost,而不是你服务器的名字,如
果是localhost, PHP就会用mysql.sock文件,而不用正常的TCP连接。
apache在OpenBSD下都是chroot过了,这一点你可以 ps agx | grep httpd | grep parent 看到,chroot过apache根目录在/var/www,而你的mysql mysql.sock 文件在/var/run/mysql.
有两个解决方案:
1。mysql_connect 不用localhost,而是你的服务器名字www.yourserver.blablabla
2. 在 /etc/rc.conf 里的httpd,加"-u" httpd_flags="-u" 这样apache就不chroot了,不过我不喜欢这个方案,不安全。。。
man chroot , man rc.conf
解决MySQL连接错误
本文解释了当尝试通过socket连接本地MySQL服务器出现错误时的原因,并提供了两种解决方案:一是更改mysql_connect中的主机名,二是调整httpd配置以避免chroot。
1010

被折叠的 条评论
为什么被折叠?



