网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 php pdo连接报错Connection failed: SQLSTATE[HY000] [2002]
内容
    下面我们来看看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
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/22 9:51:24