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 相关文章推荐
从网上搜到的phpwind 0day的代码
Dec 07 PHP
PHP 反射机制实现动态代理的代码
Oct 22 PHP
IIS安装Apache伪静态插件的具体操作图文
Jul 01 PHP
php-perl哈希算法实现(times33哈希算法)
Dec 30 PHP
YII使用url组件美化管理的方法
Dec 28 PHP
php代码检查代理ip的有效性
Aug 19 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 PHP
php生成静态页面并实现预览功能
Jun 27 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 PHP
php TP5框架生成二维码链接
Apr 01 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输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
jquery ready函数源代码研究
2009/12/06 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
Vant picker 多级联动操作
2020/11/02 Javascript
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
python选择排序算法的实现代码
2013/11/21 Python
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
python目录与文件名操作例子
2016/08/28 Python
Python的in,is和id函数代码实例
2020/04/18 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
税务专业毕业生自荐信
2013/11/10 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers