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 相关文章推荐
模仿OSO的论坛(五)
Oct 09 PHP
简单的过滤字符串中的HTML标记
Dec 25 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
用PHP编写和读取XML的几种方式
Jan 12 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
php实现有趣的人品测试程序实例
Jun 08 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
Smarty缓存机制实例详解【三种缓存方式】
Jul 20 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生成随机密码的几种方法
2011/01/17 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
怎么清空javascript数组
2013/05/11 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
初一体育教学反思
2014/01/29 职场文书
九年级语文教学反思
2014/02/04 职场文书
教师校本培训方案
2014/02/26 职场文书
初中生期末评语大全
2014/04/24 职场文书
专业见习报告范文
2014/11/03 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA