繁体   English   中英

mysqli_connect(): (HY000/2002): 由于目标机器主动拒绝,无法建立连接

[英]mysqli_connect(): (HY000/2002): No connection could be made because the target machine actively refused it

我知道有很多这样的问题,但我没有找到任何解决方案。

我尝试过的事情:-

  • 检查防火墙

  • 重新启动了我的 PC 和 Apache 服务器

  • 重新启动 MYSQL

  • 检查了我的代码

  • 尝试了我在互联网上知道和找到的一切

这是我的代码:-

<?php

$dbhost = 'localhost:3360';
$dbuser = 'root';
$dbpass = '';
$db     = 'test_db13';


$conn  = mysqli_connect($dbhost,$dbuser,'',$db);

if(! $conn){
  die('Could not connect connect: ') ;
}

echo 'Successfully Connected';


$sql = 'Connected Successfully';
  $retvalue = mysqli_query($sql);

  if(! $retvalue){
    die('Cannot connect to SQL: ');
  }

echo 'DataBase test_db13 has successfully created';

mysqli_close($conn);

 ?>

我确实设置了密码,但它仍然向我显示错误。

这是防火墙图片:-在此处输入图片说明

最后 XAMMP 正在运行,这是证明

在此处输入图片说明

如果您查看 XAMPP 控制面板,会清楚地说明 MySQL 服务器的端口是3306 - 您提供了3360 3306是默认值,因此不需要指定。 即便如此, mysqli_connect()的第 5 个参数是端口,也就是应该指定的位置。

您可以完全删除端口规范,因为您使用的是默认端口,使其成为

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db     = 'test_db13';

参考

您输入了错误的端口号 3360 而不是 3306。如果您使用 daefault,则不需要写入数据库端口号(MySQL 的情况下为 3306)

如果您使用的是非默认 MySQL 端口号,请执行以下操作:

  1. 停止您的 xampp/wamp/etc 会话
  2. 在 phpMyAdmin 文件夹下的config.inc.php 中设置 MySQL 使用的端口号。
  3. 例如,如果您的 MySQL 端口号是33747则粘贴以下内容
    $cfg['Servers'][$i]['port'] = 33747;
    在下面
    /* Authentication type and info */
    部分。
  4. 重新启动 Apache 和 MySQL 服务器。

对于那些来到这里寻找答案并且没有输入 3306 错误的人......如果像我一样,你已经浪费了几个小时而没有找到这个答案,那么这可能会有所帮助。

如果你看到这个:(HY000/2002):无法建立连接,因为目标机器主动拒绝它

然后我的理解是它无法连接以下之一。 现在哪个..

1) 你的 wamp、mamp 等图标是绿色的吗? 无论哪种方式,右键单击图标 --> 单击工具 --> 测试用于 Apache(通常为 80)和用于 Mariadb(3307?)的端口。 应该对两者都说“这是正确的”。

2) 错误来自 .php 文件。 因此,请检查您的 dbconnect.php。

<?php
$servername = "localhost";
$username = "your_username";
$password = "your_pw";
$dbname = "your_dbname";
$port = "3307";
?>

你的设置正确吗? 你的用户存在吗? 他们有权利吗? 端口是否与 1) 中的测试端口匹配? 不必是 3307,用户可以是 root。 您也可以左键单击绿色图标 --> 单击 MariaDB 并查看使用的端口,如下图所示。 都好? 积极的? 好的!

在此处输入图片说明

3) 登录 phpmyadmin 时出现错误。 因此,请检查您的 my.ini。

在此处输入图片说明

通过左键单击绿色图标打开 my.ini --> 单击 MariaDB -->

; The following options will be passed to all MariaDB clients
[client]
;password = your_password
port = 3307
socket = /tmp/mariadb.sock

; Here follows entries for some specific programs

; The MariaDB server
[wampmariadb64]
;skip-grant-tables
port = 3307
socket = /tmp/mariadb.sock

确保端口与 MariaDB 正在测试的端口匹配。 然后终于..

[mysqld]
port = 3307

在 my.ini 的底部,确保此端口也匹配。

4) 1-3 完成了吗? 重新启动您的 WAMP 并交叉手指!

就是通过mysql:3308把端口用户改成3306

只需右键单击 wamp-> 选择工具

在 mysql 使用的端口下:3308 clcik 上“使用 3308 以外的端口

在文本端口文本框中出现:键入 3306 并保存。 等到 wampserver 重新启动并变绿。

现在运行您的 PHP 代码,它将起作用。 就是这样 - 祝你好运

在您的 PHP 代码中,您设置了不正确的端口,这就是代码应该是什么

<?php

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db     = 'test_db13';

代码中的端口设置为3360时应为3306 ,但由于这是默认端口,因此无需指定。

我终于找到了解决方案。 我浪费了几个小时试图弄清楚这个问题是什么。 我尝试删除上面建议的所有文件,但对我不起作用,我尝试为 myslqd.exe 向防火墙添加新的入站规则,但没有奏效。 导致此错误的原因是 MySQL 端口配置错误,修复方法非常简单。 如果您使用的是Wamp 或 Xampp,请转到Main Folder/Bin/mysql/mysql/并找到一个名为my.ini 的文件

打开my.ini文件按CTRL + F并在其中搜索PORT并将端口的任何值更改为 - 3306保存文件

之后转到任务栏(系统托盘)底部的 Wamp 图标,左键单击选择 mysql 选项,然后单击“使用的测试端口 3306” ,看看它是否给您任何错误。 您还可以单击使用此处显示的端口和端口 3306以外的其他端口。

祝你好运。 如果它有效评论。

在此处输入图片说明

大多数情况下是数据日志问题。 按照步骤。

i) 转到 mysql 的数据文件夹。 对于 xampp,请转到 C:\\xampp\\mysql\\data。

ii) 查找日志文件名,如 ib_logfile0 和 ib_logfile1。

iii) 创建备份并删除这些文件。

iv) 重新启动 apache 和 mysql。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM