在网上搜了一下,找到了这篇文章:mysql_connect and No such file or directory。原来,个人apache/php是mac系统自带的,而mysql是经过MacPorts安装的,它的本地socket设置与默认的不同,致使php没法找到mysql的socket文件。解决方法上面那篇文章也给了,这里简单翻译一下: php
- 首先肯定是mysql_connect()和mysql_pconnect()的问题,故障现象就是函数返回空,而mysql_error()返回“No such file or directory”。
- 写个phpinfo页面,找到mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket。
- 启动mysql,执行命令 STATUS; 记下UNIX socket的值。
- 若是2和3的值不同,则打开php.ini(能够从phpinfo页面中找到php.ini的位置,默认是/private/etc/php.ini),将2中提到的三个配置项的值改为3的值。
- 重启apache。