php使用pdo连接报错Connection failed SQLSTATE的解决方法


Posted in PHP onDecember 15, 2014

本文实例讲述了php pdo_mysql连接报错Connection failed: SQLSTATE[HY000] [2002] No such file or directory问题的解决方法。分享给大家供大家参考。具体方法如下:

错误描述:

Connection failed: SQLSTATE[HY000] [2002] No such file or directory

环境概述:
MacOS
xampp 搭建的开发环境 apache mysql php
xampp 已支持mysql oracle 测试ok,且 phpinfo已上显示支持pdo_mysql pdo_pgsql pdo_sqlite

其中mysql我用的是brew包管理安装到机器里面的,而非xampp自带的mysql

php pdo 连接报错 Connection failed: SQLSTATE[HY000] [2002] No such file or directory

开始以为找不到文件是因为 url rewrite导致的,(因为从nginx切换到apache)结果跟踪程序发现是 new pdo 报错

经过搜索一些资料研究发现:

这个是php.ini配置文件中pdo_mysql.default_socket指定的mysql.sock路径不对
我的mysql.sock文件在 /private/tmp/mysql.sock

所以要设置:

pdo_mysql.default_socket=/private/tmp/mysql.sock

如果不知道自己的mysql.sock在哪里可以搜索(因为编译安装,和yum、apt-get、或者brew等包管理工具安装的位置不一样)
sudo find / -name 'mysql.sock'
下面是官方给出bug修复

1. Open up php.ini (mine was in /private/etc/)
2. locate this line: pdo_mysql.default_socket=/var/mysql/mysql.sock
3. Change the line to: pdo_mysql.default_socket=/tmp/mysql.sock
4. Restart apache

1、我这里需要补充下,如果是新系统或者刚玩php的同志,在Mac的系统中php.ini 文件不存在。
2、需要在/private/etc/目录下cp  php.ini.default
php.ini ,然后再做修改下
3、但是如果使用的xampp mysql作为数据库,那么就不需要使用官方的step2,直接写下面方式就可以了。

pdo_mysql.default_socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

 
解决方法三:
sudo vim /etc/php.ini

把以下三个原来空白的值都设置为:
/tmp/mysql.sock

mysql.default_socket = /tmp/mysql.sock

pdo_mysql.default_socket= /tmp/mysql.sock

mysqli.default_socket =/tmp/mysql.sock

 
都修改了
修改完成后使用
sudo /usr/sbin/apachectl restart

问题搞定!

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP MemCached高级缓存配置图文教程
Aug 05 PHP
解析linux下安装memcacheq(mcq)全过程笔记
Jun 27 PHP
CURL状态码列表(详细)
Jun 27 PHP
win7下memCache的安装过程(具体操作步骤)
Jun 28 PHP
PHP COOKIE及时生效的方法介绍
Feb 14 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
Dec 19 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
PHP云打印类完整示例
Oct 15 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
PHP缓存集成库phpFastCache用法
Dec 15 #PHP
php图片的二进制转换实现方法
Dec 15 #PHP
php第一次无法获取cookie问题处理
Dec 15 #PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
Dec 15 #PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 #PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 #PHP
PHP中Memcache操作类及用法实例
Dec 12 #PHP
You might like
PHP 常用的header头部定义汇总
2015/06/19 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
express默认日志组件morgan的方法
2018/04/05 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
详解Python的Lambda函数与排序
2016/10/25 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
教师师德师风个人整改方案
2014/09/18 职场文书
三下乡个人总结
2015/03/04 职场文书
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript