mysqli_connect():( HY000 / 2002):无法建立连接,因为目标计算机主动拒绝它

时间:2016-10-01 18:34:08

标签: php mysqli xampp

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

我尝试的事情: -

  • 检查防火墙

  • 重新启动了我的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);

 ?>

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

这是防火墙图片: - enter image description here

最后XAMMP在这里运行的是证据

enter image description here

8 个答案:

答案 0 :(得分:9)

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

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

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

参考

答案 1 :(得分:2)

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

答案 2 :(得分:1)

在您的PHP代码中,您设置了错误的端口,这就是代码应该是

<?php

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

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

答案 3 :(得分:1)

如果您使用的是非默认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服务器。

答案 4 :(得分:0)

在大多数情况下,这是数据记录问题。请按照下列步骤操作。

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

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

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

iv)重新启动apache和mysql。

答案 5 :(得分:0)

对于那些来这里寻找答案并没有键入3306错误的人...如果像我一样,您浪费了很多时间没有运气来寻找该答案,那么这可能会有所帮助。

如果您看到此信息: (HY000 / 2002):由于目标计算机主动拒绝连接,因此无法建立连接

那么我的理解是,它无法连接以下其中一项。现在。

1)您的马桶,马桶等图标是否呈绿色?无论哪种方式,请右键单击图标->单击工具->测试用于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并查看已使用的端口,如下图所示。都好?正?好吧!

enter image description here

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

enter image description here

通过单击绿色图标->单击MariaDB->

来打开my.ini。
; 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并交叉手指!

答案 6 :(得分:0)

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

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

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

祝你好运。如果可行,请发表评论。

enter image description here

答案 7 :(得分:0)

只需将mysql:3308的端口用户更改为3306

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

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

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

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