Openbsd 下面 mysql 报错socket '/var/run/mysql/mysql.sock

#2002 - Can't connect to local MySQL server through socket '/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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值