You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用mysqli连接MySQL出现Error while reading greeting packet错误如何解决

报错核心原因

你混淆了Web服务端口和MySQL服务端口:
mysqli构造函数的第6个参数是MySQL服务的监听端口,你传入的8080是本地Web服务(Apache/Nginx)的运行端口,该端口仅响应HTTP请求,无法识别MySQL连接协议。PHP向8080端口发送MySQL连接请求后始终无法收到合法的响应包,最终触发超时,出现你看到的三类报错。

解决步骤
  1. 修正数据库连接代码
    MySQL默认监听端口为3306,如果你没有手动修改过MySQL端口配置,直接修改连接代码的端口参数即可,修正后代码如下:
<?php
// 填写MySQL默认端口3306
$conn = new mysqli('localhost','root', '', 'votesystem','3306');

// 也可以直接省略端口参数,底层会默认使用3306
// $conn = new mysqli('localhost','root', '', 'votesystem');

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>
  1. 若修改后仍报错,按以下顺序排查
  • 打开XAMPP控制面板,确认MySQL服务处于正常运行状态
  • 如果你手动修改过MySQL的监听端口,打开MySQL配置文件my.ini,查找port参数对应的实际端口值,将上述代码中的端口替换为你实际配置的MySQL端口
  • 确认votesystem数据库已经提前创建完成,数据库名拼写没有错误

内容的提问来源于stack exchange,提问作者tanvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:27:04