在air上,用MySQLi方式连接数据库就出现这个问题了,原来是mac系统配置MySQL环境的时候丢失系统的mysql.socket造成的,大概的意思就是。你用php连接MySQL的时候,需要一个mysql.socket文件,但是这个文件并没有能够正确的在你的php.ini文件中映射,路径不对,暂且这么理解吧,我不求甚解了。
操作系统:mac os
1、找到php.ini find / -name php.ini
2、然后找到pdo_mysql.default_socket,mysql.default_socket,mysqli.default_socket你会发现他们后面的值是空的,或者带有什么路径的值。 3、用phpinfo()函数查看扩展中pdo.mysql,mysqli中所用的mysql.sock连接是什么。跟第二部进行对比。 4、找到文件find / -name mysql.sock
然后你会发现这个mysql.sock的文件的位置就在 /PRivate/tmp/mysql.sock 。接着,我们把这个路径替换到第二步骤中那些socket连接后面去: pdo_mysql.default_socket=/private/tmp/mysql.sock mysql.default_socket = /private/tmp/mysql.sock mysqli.default_socket = /private/tmp/mysql.sock 当然,这个路径我只是示例,具体看你服务器上的mysql.sock文件到路径位置了。 5、重启Apache服务器:sudo /usr/sbin/apachectl restart
来刷新php.ini文件。 6、验证,再次使用phpinfo()函数输出,查看上面提到的几个值,看看是否有了变化。 7、开始连接,可以参考我的mysqli连接MySQL的文章。现在就不会报错了
虽然问题解决了,但是对mysq.sock文件和php.ini文件,还有众多配置的问题不是真的弄懂。先记录一下吧。QAQ
新闻热点
疑难解答