ThinkPHP报错SQLSTATE[HY000] [2002] No such file or directory解决方案

出现这个报错,一般都是php.ini中关于>mysql.sock的指向与my.cnf中mysq.sock的指向不一致导致的。

方案一

打开/etc/my.cnf配置文件(这里的我的机器,具体根据环境实际情况查找),找到如下配置项目:

注意到其中的socket没,这里就是mysql.sock的正确指向位置。

接下来,再打开php.ini文件(一般是在php安装目录下的etc目录中),找到与mysql default_socket相关的配置项目,比如mysqli.default_socket 或 pdo_mysql.default_socket,前者是mysqli的,后者是pdo的。根据自己实际情况需要而定。

如下图,这里我修改的pdo项:

保存退出,重启PHP即可。

方案二

这种就简单了,直接将网站数据库配置文件中的服务器地址配置项改成127.0.0.1即可,tp5.0的位置在 /application/database.php。

注:原因是127.0.0.1对于mysql来说,是TCP/IP连接,不会使用Unix domain socket,不会走mysql.socket。


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/302.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。