2013年7月9日星期二

mysql_connect报告“No such file or directory”错误的解决方法

http://tech.idv2.com/2011/04/27/mysql_connect_no_such_file/

http://www.pvsky.com/blog/20121210/504.html

如果是nginx用的php-fpm的话,就需要重新启动php-fpm。





今天在MacBookPro上安装wordpress时,安装程序一直报错说连不上数据库。mysql客户端可以正常使用,可以确定不是服务器的问题。写了个php脚本单独执行mysql_connect(),发现错误信息居然是“No such file or directory”!这里应该没涉及到文件啊?
在网上搜了一下,找到了这篇文章:mysql_connect and No such file or directory。原来,我的apache/php是mac系统自带的,而mysql是通过MacPorts安装的,它的本地socket设置与默认的不一样,导致php无法找到mysql的socket文件。解决方法上面那篇文章也给了,这里简单翻译一下:
  1. 首先确定是mysql_connect()mysql_pconnect()的问题,故障现象就是函数返回空,而mysql_error()返回“No such file or directory”。
  2. 写个phpinfo页面,找到mysql.default_socketmysqli.default_socketpdo_mysql.default_socket
  3. 启动mysql,执行命令 STATUS; 记下UNIX socket的值。
  4. 如果2和3的值不一样,则打开php.ini(可以从phpinfo页面中找到php.ini的位置,默认是/private/etc/php.ini),将2中提到的三个配置项的值改成3的值。
  5. 重启apache。

没有评论:

发表评论