mysqli_connect(): (HY000/2002): 无法通过socket连接到本地MySQL服务器

Posted

技术标签:

【中文标题】mysqli_connect(): (HY000/2002): 无法通过socket连接到本地MySQL服务器【英文标题】:mysqli_connect(): (HY000/2002): Can't connect to local MySQL server through socket 【发布时间】:2015-05-06 02:22:33 【问题描述】:

我需要帮助很糟糕...我在尝试使用 php 显示数据库时遇到此错误:

mysqli_connect(): (HY000/2002): 无法连接到本地 MySQL 服务器 通过 socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2) in /Applications/MAMP/htdocs/databases.php on line 7 数据库连接 失败:无法通过套接字连接到本地 MySQL 服务器 '/Applications/MAMP/tmp/mysql/mysql.sock' (2) (2002)

我已经尝试修复它好几天了,阅读了这个论坛上遇到相同问题的人的文章,并应用了修复程序(比如这个http://tinyurl.com/q4cpxzj),但完全没有运气。

这是我尝试过的一些步骤:进入 php.ini 文件并将套接字更改为 /tmp/mysql.sock(我也尝试将其更改为 /Applications/MAMP/tmp/mysql/mysql.sock 以查看发生了,不好)。

尝试对 /etc/my.cnf 文件执行相同的操作。不好。

尝试了一堆我什至不记得了的其他东西。

另外,我使用的是 Mac 10.10.2 并且安装了 MAMP。根据 MA​​MP,只有 Apache 正在工作(Apache 亮绿灯,MySQL 上没有任何东西),但我已经下载了 MySQL 并且根据 System Pref 它正在运行,尽管它不会让我出于某种原因停止 MySQL 服务器(当我单击停止它会停止然后自行重新启动)。

请帮忙...

如果重要,这里是 php:

<?php
  // 1. Create a database connection
  $dbhost = "localhost";
  $dbuser = "widget_cms";
  $dbpass = "*********";
  $dbname = "widget_corp";
  $connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
  // Test if connection succeeded
  if(mysqli_connect_errno()) 
    die("Database connection failed: " . 
         mysqli_connect_error() . 
         " (" . mysqli_connect_errno() . ")"
    );
  
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
    <head>
        <title>Databases</title>
    </head>
    <body>

    </body>
</html>

<?php
  // 5. Close database connection
  mysqli_close($connection);
?>

【问题讨论】:

您是否从 MAMP 以外的其他软件包安装了 MySQL? 我从mysql网站安装了Mysql社区服务器。 安装后你是否在没有先编辑 php.ini 的情况下尝试过...也许 Mac 不同,但在 Windows 上,我从未编辑过 php.ini 来指定套接字。 如果您不编辑文件,我认为默认配置是该地址。但它没有用,所以我还是试着把它放进去。 【参考方案1】:

刚刚找到解决方案!

我刚刚将 localhost 替换为 127.0.0.1。

奇怪的是,我想我以前试过这个。也许弄乱配置并重试它现在可以工作了。

【讨论】:

以上是关于mysqli_connect(): (HY000/2002): 无法通过socket连接到本地MySQL服务器的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 错误:mysqli_connect(): (HY000/2002): Connection denied

mysqli_connect(): (HY000/2002): 无法通过socket连接到本地MySQL服务器

警告:mysqli_connect(): (HY000/1049): 仅在 mac 终端中的未知数据库

警告:mysqli_connect():(HY000/1045):用户'record'@'localhost'的访问被拒绝(使用密码:YES)[重复]

警告:mysqli_connect(): (HY000/2002): 没有这样的文件或目录

mysqli_connect(): (HY000/2002): 无法连接,因为目标机器主动拒绝