发布于2021-03-14 06:14 阅读(1125) 评论(0) 点赞(18) 收藏(5)
YII2进行MYSQL数据库操作时出现Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or directory错误的解决方法
在进行数据库操作时出现如下类似错误,实际则是PHP配置文件php.ini中未指定mysql.sock(或mysqld.sock)文件路径导致的PDO无法链接数据库
Database Exception – yii\db\Exception
SQLSTATE[HY000] [2002] No such file or directory
↵
Caused by: PDOException
SQLSTATE[HY000] [2002] No such file or directory
in /var/www/yii2/vendor/yiisoft/yii2/db/Connection.php at line 579
这个是由于 通常我们在参考 教程在 MAC OS LINUX下安装 MYSQL 时,
默认将PHP.ini 中的以下三项留空导致的YII2所需的PDO组建无法找到mysql.sock(或mysqld.sock)文件地址导致的
mysql.default_socket =
pdo_mysql.default_socket=
mysqli.default_socket =
而没有把另外两个YII 框架需要调用到的模块的default_socket也修改一下
解决方法 就是
vim usr/local/php/etc/php.ini
把以下三个原来空白的值都设置为 /tmp/mysql.sock(或/tmp/mysqld.sock)具体位置请替换成你实际安装mysql数据库时的实际mysql.sock(或mysqld.sock)文件地址
mysql.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket= /tmp/mysql.sock
mysqli.default_socket =/tmp/mysql.sock
使用mysqld引擎的数据库应修改为如下设置
mysql.default_socket = /tmp/mysqld.sock
pdo_mysql.default_socket= /tmp/mysqld.sock
mysqli.default_socket =/tmp/mysqld.sock
如果你不知道自己使用的是mysql.sock还是mysqld.sock文件,或者不知道mysql_socket文件的位置,打开phpinfo() 函数信息页面找到如下PHP扩展中MYSQL扩展所在位置,找到里面的MYSQL_SOCKET对应的路径值复制出来即可
可以看出我使用的是mysqld.sock 文件,因此我php.ini中关于数据库的配置修改如下:
mysql.default_socket = /tmp/mysqld.sock
pdo_mysql.default_socket= /tmp/mysqld.sock
mysqli.default_socket =/tmp/mysqld.sock
修改完成后 重启apache 或者NGINX下重启php-fpm 即可解决问题
注:实际上Yii2所使用的PDO链接数据库,之修改设定pdo_mysql.default_socket 一项的配置文件路径即可,但考虑到后续使用和其他一些应用场合,就索性连同mysql,mysqli的socket路径一同设置修改了(修改设置路径地址 必须为mysql_socket所在实际文件路径地址,否则将导致PHP无法正常链接使用MYSQL数据库)……
转载链接:https://blog.csdn.net/zqtsx/java/article/details/41845511
原文链接:https://www.cnblogs.com/zmdComeOn/p/12849396.html
作者:php程序员
链接:http://www.phpheidong.com/blog/article/3500/d9b3a15c8640198a4213/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!