PHP 警告:mysqli_connect(): (HY000/2002): 连接被拒绝

PHP Warning: mysqli_connect(): (HY000/2002): Connection refused

我正在使用 PHP 5.5 和 MAMP(从 here 下载):

我有一个像这样的基本脚本:

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "root";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

当我 运行 这个脚本时,我得到这个错误:

PHP Warning:  mysqli_connect(): (HY000/2002): Connection refused in /Applications/MAMP/htdocs/test/test.php on line 7

我需要在 MAMP 或 PHP 中设置一些配置问题吗?

如果其他人遇到此问题,mysql 的 MAMP 上的默认端口是 8889,但 php 期望用于 mysql 的端口是 3306。因此您需要打开 MAMP,转到首选项,将 MAMP mysql 端口更改为 3306,然后 重新启动 mysql 服务器 。现在连接应该成功 host=localhost, user=root, pass=root.

有时您需要像这样在服务器中包含 mysql 数据库端口 ID。

$serverName = "127.0.0.1:3307";

您必须将 mamp Mysql 数据库端口更改为 8889。

为了让它再次工作,我刚刚删除了文件

ib_logfile0

ib_logfile1

.

来自 :

/Applications/MAMP/db/mysql56/ib_logfile0 

Mac 10.13.3
MAMP:Version4.3 (853)

在我的例子中,我使用的是 XAMPP,并且有一个日志告诉我错误。要找到它,请转到 XAMPP 控制面板,然后单击 "Configure" 对应 MySQL,然后单击 "Open Log."

日志的最新数据在底部,日志按日期、时间、一些数字和括号中的文本组织,可能会说 "Note" 或 "Error."说 "Error" 可能是导致问题的原因。

对我来说,我的错误是导致问题的表空间,所以我删除了给定位置的数据库文件。

注意:您安装 XAMPP 的表空间文件可能位于不同的位置,但对我来说它们在 /opt/lampp/var/mysql 中。我认为这是基于 Debian 的发行版 XAMPP 的典型表现。此外,我关于在控制面板中单击什么以查看日志的说明对您来说可能有点不同,因为我 运行 XAMPP 在基于 Ubuntu 的 Linux (费伦 OS).

WAMP 中,右键单击 WAMP 托盘图标,然后将端口从 3308 更改为 3306,如下所示:

在我更新到 macOS Big Sur 之前,

MySQL 工作得很好。在我更新到最新版本的 macOS 后,MySQL 没有按预期工作。

我在 MySQL 配置文件中添加了一个端口(我正在使用 AMPPS,但没关系,找到你的 MySQL 配置文件),它开始工作了。

/Applications/Ampps/phpMyAdmin/config.inc.php

来自

$cfg['Servers'][$i]['port'] = '';

$cfg['Servers'][$i]['port'] = '3306';