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 相关文章推荐
追求程序速度,而不是编程的速度
Apr 23 PHP
PHP获取类中常量,属性,及方法列表的方法
Apr 09 PHP
献给php初学者(入门学习经验谈)
Oct 12 PHP
PHP include_path设置技巧分享
Jul 03 PHP
php的dl函数用法实例
Nov 06 PHP
Thinkphp中的curd应用实用要点
Jan 04 PHP
分享php邮件管理器源码
Jan 06 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
php实现生成code128条形码的方法详解
Jul 19 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 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设计模式 Builder(建造者模式)
2011/06/26 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
JavaScript 创建对象
2009/07/17 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
使用webpack编译es6代码的方法步骤
2019/04/28 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
详解Python中for循环的使用方法
2015/05/14 Python
Python中转换角度为弧度的radians()方法
2015/05/18 Python
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
J2EE中常用的名词进行解释
2015/11/09 面试题
《尊严》教学反思
2014/02/11 职场文书
《自选商场》教学反思
2014/02/14 职场文书
被告代理词范文
2015/05/25 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS