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

PHP远程连接MySQL求助:Apache(XAMPP)连接远程MySQL服务器失败

解决XAMPP Apache连接远程MySQL Server的问题

嘿,我来帮你排查这个远程MySQL连接的问题!看了你的代码和连接失败的情况,咱们一步步拆解可能的原因和解决办法:

一、先调整代码里的细节

你的代码把端口3306写在了服务器地址字符串里,虽然MySQL客户端通常能解析,但把端口单独作为参数传入会更稳妥;另外你还没在连接时指定要访问的AssistMe数据库(虽然这不是连接失败的直接原因,但后续操作数据库会出问题)。建议把代码改成这样:

<?php 
$servername = '10.4.41.164';
$port = 3306;
$username = 'admin';
$password = 'admin';
$db = 'AssistMe';

echo "Pepito"; 

// Create connection
$conn = mysqli_connect($servername, $username, $password, $db, $port); 

if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
} else {
    echo "Connected successfully";
} 
?>

二、排查网络与防火墙限制

这是远程连接失败最常见的原因:

  • 测试基础连通性:在你的XAMPP服务器所在机器上,打开命令行执行ping 10.4.41.164,如果不通,说明两台机器的网络本身没打通,先解决局域网/跨网的连通问题。
  • 测试端口是否开放:用telnet 10.4.41.164 3306(Windows)或者nc -zv 10.4.41.164 3306(Linux/macOS)测试3306端口能否访问。如果提示连接失败,那就是远程机器的防火墙(比如Windows防火墙、Linux的ufw/iptables)拦截了请求,需要在远程机器上添加规则,允许你的XAMPP服务器IP访问3306端口;要是远程机器是云服务器,还要检查云服务商的安全组,确保3306端口对外开放给你的IP。

三、修改MySQL的远程访问配置

默认情况下,MySQL只允许本地localhost连接,得改配置开启远程访问:

  1. 找到远程MySQL的配置文件(Windows通常是my.ini,Linux是/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf)。
  2. 找到bind-address这一行,把它改成0.0.0.0(允许所有IP访问)或者直接写你的XAMPP服务器的IP地址。
  3. 重启MySQL服务(Windows在服务管理器重启,Linux用systemctl restart mysql)。

四、检查MySQL用户的远程访问权限

你的admin用户可能没有被授予从远程IP访问的权限,登录远程MySQL服务器,执行以下SQL语句:

-- 授予admin用户从你的XAMPP服务器IP访问AssistMe数据库的所有权限
GRANT ALL PRIVILEGES ON AssistMe.* TO 'admin'@'你的XAMPP服务器IP' IDENTIFIED BY 'admin';
-- 刷新权限让设置生效
FLUSH PRIVILEGES;

如果只是测试环境,想允许admin从任意IP访问(生产环境不推荐这么做),可以把'你的XAMPP服务器IP'换成'%'。

按照这些步骤一步步排查,应该能解决你的连接问题。如果还有具体的错误信息,可以补充出来,我再帮你精准定位!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:22:05