【问题标题】:Concrete5 SQLSTATE[HY000] [2002] No such file or directory on localhostConcrete5 SQLSTATE[HY000] [2002] 本地主机上没有这样的文件或目录
【发布时间】:2015-06-01 22:43:27
【问题描述】:

我正在尝试使用 MAMP 在本地主机上安装 Concrete5,但每次我将数据库信息放入其中时,都会收到此错误。

SQLSTATE[HY000] [2002] No such file or directory

我该如何解决这个问题?

【问题讨论】:

标签: mysql database content-management-system concrete5


【解决方案1】:

错误 2002 通常显示为

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/path/to/mysqld/mysqld.sock'

PHP 无法使用套接字连接到 MySQL。在 Windows 上,您可能不想使用 unix 套接字。

“但我没有使用 unix 套接字,我只是连接到 localhost” 你可能会说。

对于 PHP 驱动程序,'localhost' 具有特殊含义,如 described in the PHP manual

主机名 localhost 具有特殊含义。它必须使用 Unix 域套接字。无法使用主机名 localhost 打开 TCP/IP 连接,您必须改用 127.0.0.1。

解决方案:将 127.0.0.1 配置为 Concrete5 的 MySQL 主机。

【讨论】:

  • 嗯...我试过了,我得到了SQLSTATE[HY000] [2002] Connection refused
  • 检查 MySQL 是否正在运行。
  • 如果我进入 MAMP,它会告诉我它正在运行。
【解决方案2】:

我终于解决了这个问题。我进入 MAMP 并找到 MySQL 端口号并以这种格式在服务器框中输入:localhost:[MySQL Port]。

【讨论】:

    【解决方案3】:

    试试127.0.0.1:[MySQL port],这对我有用。

    要查找您的端口号,请转到 MAMP 中的 MySQL 部分并查看屏幕的右上角。会有消息说:MySQL is configured to use port [port number].

    【讨论】:

      【解决方案4】:

      我是在 MacOS 10.13 和 MAMP 5.1 上完成的,在 /var/mysql 中创建指向 mysql.sock 的符号链接(如果该目录不存在,则创建该目录)

      它的解决方案适用于全球,无需更改任何配置,因此 PHP 可以连接到 MySQL。

      在控制台/终端中输入:

      sudo mkdir /var/mysql
      cd /var/mysql && sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock
      

      【讨论】:

        猜你喜欢
        • 2020-05-07
        • 2015-06-24
        相关资源
        最近更新 更多