mysql,mysqli,pdo方式连接数据库[no such file or directory]

来源:csdn博客 分类: 文章浏览史 发布时间:2020-07-17 11:52:25 最后更新:2020-07-17 浏览:139
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2020-07-17 11:52:25

问题描述

在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

php技术微信