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与ASP
Oct 09 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
从康盛产品(discuz)提取出来的模板类
Jun 28 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
php 类自动载入的方法
Jun 03 PHP
php类的扩展和继承用法实例
Jun 20 PHP
php强大的时间转换函数strtotime
Feb 18 PHP
微信支付开发交易通知实例
Jul 12 PHP
thinkphp整合微信支付代码分享
Nov 24 PHP
PHP中仿制 ecshop验证码实例
Jan 06 PHP
PHP实现文件上传与下载
Aug 28 PHP
php微信小程序解包过程实例详解
Mar 31 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+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
php表单提交实例讲解
2015/11/12 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
原生js获取元素样式的简单方法
2016/08/06 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
python 函数传参之传值还是传引用的分析
2017/09/07 Python
python3爬虫之设计签名小程序
2018/06/19 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
详解Django中异步任务之django-celery
2020/11/05 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
生物医学工程专业学生求职信范文分享
2013/12/14 职场文书
关于礼仪的演讲稿
2014/01/04 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
毕业自我鉴定总结
2014/03/24 职场文书
2014年中秋寄语
2014/08/11 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
开学典礼校长致辞
2015/07/29 职场文书
学困生帮扶工作总结
2015/08/13 职场文书