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编实现程动态图像的创建代码
Sep 28 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 PHP
php伪静态之APACHE篇
Jun 02 PHP
PHP实现合并discuz用户
Aug 05 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
php fseek函数读取大文件两种方法
Oct 12 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
Oct 14 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP格式化显示时间date()函数代码
Oct 03 PHP
laravel5.5添加echarts实现画图功能的方法
Oct 09 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
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
Yii清理缓存的方法
2016/01/06 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
浅谈AngularJs 双向绑定原理(数据绑定机制)
2017/12/07 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
pandas把dataframe转成Series,改变列中值的类型方法
2018/04/10 Python
python函数的作用域及关键字详解
2019/08/20 Python
python实现KNN分类算法
2019/10/16 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
几道Java和数据库的面试题
2013/05/30 面试题
保护环境标语
2014/06/09 职场文书
大学生实训报告总结
2014/11/05 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
公司车队管理制度
2015/08/04 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
Python Pandas常用函数方法总结
2021/06/15 Python
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL
Python Flask实现进度条
2022/05/11 Python
浅谈Redis的事件驱动模型
2022/05/30 Redis