Thinkphp3.2.x在linux下使用PDO時報SQLSTATE[HY000] [2002] No such file or directory錯誤解決

字號+ 編輯: 种花家 修訂: 种花家 來源: thinkphp 2023-09-20 我要說兩句(1)

linux下, 從mysqli敺動切換到PDO遇到這個問題, 需要同時調整一下php.ini和my.cnf

报错信息如下:

:(
SQLSTATE[HY000] [2002] No such file or directory
错误位置

FILE: /phpstudy/www/mmm/ThinkPHP/Library/Think/Db/Driver.class.php  LINE: 109
TRACE

#0 /phpstudy/www/mmm/ThinkPHP/Library/Think/Db/Driver.class.php(109): E('SQLSTATE[HY000]...')
#1 /phpstudy/www/mmm/ThinkPHP/Library/Think/Db/Driver.class.php(1075): Think\Db\Driver->connect()
#2 /phpstudy/www/mmm/ThinkPHP/Library/Think/Db/Driver/Mysql.class.php(47): Think\Db\Driver->initConnect(true)
#3 /phpstudy/www/mmm/ThinkPHP/Library/Think/Model.class.php(138): Think\Db\Driver\Mysql->getFields('inkks_xin')
#4 /phpstudy/www/mmm/ThinkPHP/Library/Think/Model.class.php(126): Think\Model->flush()
#5 /phpstudy/www/mmm/ThinkPHP/Library/Think/Model.class.php(1458): Think\Model->_checkTableInfo()
#6 /phpstudy/www/mmm/ThinkPHP/Library/Think/Model.class.php(101): Think\Model->db(0, '', true)
#7 /phpstudy/www/mmm/ThinkPHP/Common/functions.php(621): Think\Model->__construct('xin', '', '')
#8 /phpstudy/www/mmm/appx/Home/Controller/IndexController.class.php(9): M('xin')
#9 [internal function]: Home\Controller\IndexController->index()
#10 /phpstudy/www/mmm/ThinkPHP/Library/Think/App.class.php(173): ReflectionMethod->invoke(object(Home\Controller\IndexController))
#11 /phpstudy/www/mmm/ThinkPHP/Library/Think/App.class.php(110): Think\App::invokeAction(object(Home\Controller\IndexController), 'index')
#12 /phpstudy/www/mmm/ThinkPHP/Library/Think/App.class.php(204): Think\App::exec()
#13 /phpstudy/www/mmm/ThinkPHP/Library/Think/Think.class.php(120): Think\App::run()
#14 /phpstudy/www/mmm/ThinkPHP/ThinkPHP.php(97): Think\Think::start()
#15 /phpstudy/www/mmm/index.php(7): require('/phpstudy/www/m...')
#16 {main}

问题出在mysql.sock这个进程socket连接文件的位置没有定义, 系统就会报找不到文件。

解决方案: 调整php.ini和my.cnf

一般主机环境都把mysql.sock这个文件扔到/tmp目录下, 那么路径就是/tmp/mysql.sock

php.ini里加一行

pdo_mysql.default_socket=/tmp/mysql.sock

my.conf里相关的配置为

socket=/tmp/mysql.sock


閲完此文,您的感想如何?
  • 有用

    5

  • 沒用

    3

  • 開心

    4

  • 憤怒

    3

  • 可憐

    3

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • mac開發接入微信公衆號接口返回報錯 cURL error 56: SSLRead() return error -9806

  • PHP的換行符是什麽

  • pecl安裝程序時報錯Array and string offset access syntax with curly braces is no longer supported

  • 由於商家傳入的H5交易參數有誤,該筆交易暫時無法完成,請聯繫商家解決

我要說說
網上賓友點評
1 樓 IP 223.20.***.26 的嘉賓 说道 : 很久前
现在用tp5