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性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
php学习之运算符相关概念
Jun 09 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
Oct 16 PHP
php判断两个日期之间相差多少个月份的方法
Jun 18 PHP
PHP获取当前文件的父目录方法汇总
Jul 21 PHP
PHP数据库编程之MySQL优化策略概述
Aug 16 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 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
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
htm调用JS代码
2007/03/15 Javascript
img标签中onerror用法
2009/08/13 Javascript
使用JQuery进行跨域请求
2010/01/25 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
2017/10/26 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
Python I/O与进程的详细讲解
2019/03/08 Python
python如何制作英文字典
2019/06/25 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
全球工业:Global Industrial
2020/02/01 全球购物
建筑横幅标语
2014/10/09 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
志愿者事迹材料
2014/12/26 职场文书
文言文辞职信
2015/02/28 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
微信搭讪开场白
2015/05/28 职场文书
法人代表证明书范本
2015/06/18 职场文书
如何写好闭幕词
2019/04/02 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js
JavaScript原型链详解
2021/11/07 Javascript