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 pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
Chrome Web App开发小结
Sep 04 PHP
四种php中webservice实现的简单架构方法及实例
Feb 03 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
Mar 21 PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
php解决DOM乱码的方法示例代码
Nov 20 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
PHP实现链表的定义与反转功能示例
Jun 09 PHP
php实现登录页面的简单实例
Sep 29 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
解析csv数据导入mysql的方法
2013/07/01 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
js类 from qq
2006/11/13 Javascript
jquery 批量上传图片实现代码
2010/01/28 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
python实现查询苹果手机维修进度
2015/03/16 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
Python request中文乱码问题解决方案
2020/09/17 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
教师的实习鉴定
2013/12/15 职场文书
迟到检讨书1000字
2014/01/15 职场文书
英语商务邀请函范文
2014/01/16 职场文书
学校火灾防控方案
2014/06/09 职场文书
销售竞赛活动方案
2014/08/23 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
酒店员工手册范本
2015/05/14 职场文书
为自己工作观后感
2015/06/11 职场文书
红与黑读书笔记
2015/06/29 职场文书
课题研究阶段性总结
2015/08/13 职场文书
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题