PHP连接MySQL报错:目标机器主动拒绝连接,如何解决?
解决MySQL连接被拒绝的问题
别急,这个“目标机器主动拒绝连接”的报错我之前碰过好多次,大多是服务没启动或者参数不对导致的,咱们一步步来排查解决:
1. 先确认MySQL服务是否在运行
你用的是XAMPP,先打开XAMPP控制面板,看看MySQL模块的状态——如果显示的是「Stop」,直接点击「Start」按钮启动它。有时候服务会因为意外情况停止,或者开机没自动启动,这是最常见的原因。
2. 修正代码里的连接参数问题
你的代码里有几个小问题需要调整:
- 数据库名称必须加引号:
mysql_select_db(WordPress_db)里的WordPress_db是字符串,得用双引号或单引号括起来,不然PHP会把它当成常量解析,改成@mysql_select_db("WordPress_db")才行。 - 试试把localhost换成127.0.0.1:有时候localhost的域名解析会出小问题,换成IP地址连接更稳定,修改成:
$db = mysql_connect("127.0.0.1", "root", ""); - 确认端口和密码:XAMPP默认MySQL端口是3306,如果你之前改过端口,记得在地址后面加上端口(比如
127.0.0.1:3307);另外默认root密码是空的,但如果你之前设置过密码,要把代码里的空字符串改成你设置的密码。
3. 重要提醒:mysql_*函数已经废弃了
得跟你说个关键的点:mysql_*系列函数在PHP 5.5之后就被官方废弃了,PHP 7及以上版本直接移除了这些函数,所以就算这次解决了连接问题,后续可能还会遇到兼容性问题。建议你换成mysqli或者PDO,这两个是现在官方推荐的扩展,安全性和兼容性都更好。给你一个mysqli的示例代码参考:
<?php // 使用mysqli连接数据库(直接指定数据库名) $db = mysqli_connect("127.0.0.1", "root", "", "WordPress_db"); // 检查连接是否成功 if (!$db) { die("连接失败: " . mysqli_connect_error()); } echo "数据库连接成功!"; ?>
最后排查防火墙(如果前面都没用)
要是上面的步骤都试过还是不行,检查一下本地防火墙有没有阻止MySQL的3306端口,暂时关闭防火墙试试,要是能正常连接了,记得给MySQL添加防火墙允许规则。
内容的提问来源于stack exchange,提问作者Sairen
相关产品推荐
相关产品推荐

