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 相关文章推荐
JAVA/JSP学习系列之二
Oct 09 PHP
来自PHP.NET的入门教程
Oct 09 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
Jun 12 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
取得单条网站评论以数组形式进行输出
Jul 28 PHP
php基于双向循环队列实现历史记录的前进后退等功能
Aug 08 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
php json中文编码为null的解决办法
Dec 14 PHP
php输出图像的方法实例分析
Feb 16 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 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实现多条件查询实例代码
2010/07/17 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
PHP实现文件下载详解
2014/11/27 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
Python之PyUnit单元测试实例
2014/10/11 Python
python计算N天之后日期的方法
2015/03/31 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
Python命令行解析模块详解
2018/02/01 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
vue项目实现分页效果
2021/03/24 Vue.js
房屋租赁协议书
2014/04/10 职场文书
《悯农》教学反思
2014/04/28 职场文书
合作协议书模板2014
2014/09/26 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
小学生红领巾广播稿
2015/08/19 职场文书
五年级数学教学反思
2016/02/16 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
python3 字符串str和bytes相互转换
2022/03/23 Python
Python开发简易五子棋小游戏
2022/05/02 Python