[英]mysqli::real_connect(): (HY000/2002): No connection could be made because the target machine actively refused it
[英]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 端口号,请执行以下操作:
33747
则粘贴以下内容$cfg['Servers'][$i]['port'] = 33747;
在下面/* Authentication type and info */
部分。对于那些来到这里寻找答案并且没有输入 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.