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

5

我需要帮助...我在使用php显示数据库时遇到了以下错误:

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

我已经尝试了几天来修复它,阅读了这个论坛中有相同问题的人们的帖子,并应用了修复方法(例如this one),但完全没有成功。

以下是我尝试过的一些步骤:进入php.ini文件并将套接字更改为/tmp/mysql.sock(我还尝试将其更改为/Applications/MAMP/tmp/mysql/mysql.sock以查看会发生什么,但都不行)。

尝试对/etc/my.cnf文件进行相同的操作。但也不行。

尝试了很多其他事情,我甚至记不起来了。

另外,我正在使用Mac 10.10.2,并安装了MAMP。根据MAMP,只有Apache正在运行(Apache上有绿灯,MySQL上没有任何指示),但是我已经下载了MySQL,并且根据系统偏好设置,它正在运行,尽管出于某种原因它不允许我停止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吗? - tsnorri
1
我从mysql官网上安装了Mysql社区服务器。 - Henry Lee
安装后,您是否尝试在未编辑php.ini的情况下使用它?也许Mac不同,但在Windows上,我从未编辑过php.ini来指定套接字。 - developerwjk
如果您没有编辑文件,我认为默认配置是该地址。但它没有起作用,所以我还是尝试将其放入其中。 - Henry Lee
1个回答

3

刚刚发现了一个解决方案!

我把“localhost”替换成了“127.0.0.1”。

奇怪的是,我觉得我以前试过这个方法。也许是通过调整配置文件,并重试后现在才能正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接