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

跨机器连接XAMPP中MySQL:NetBeans JDBC连接超时求助

解决NetBeans连接远程XAMPP MySQL超时问题

1. 确认MySQL端口监听状态

  • 打开服务器XAMPP的MySQL配置文件(my.ini或my.cnf),检查port参数是否为默认的3306(若修改过需记对应端口)。
  • 在服务器命令行执行:
    netstat -ano | findstr :3306
    
    确认输出中存在0.0.0.0:3306,说明MySQL正在监听所有IP的该端口。

2. 验证服务器防火墙的3306端口放行

  • 打开Windows Defender防火墙的高级设置,检查入站规则中是否存在允许TCP 3306端口的规则,确保规则应用于局域网或所有网络。
  • 在客户端机器执行telnet 192.168.0.2 3306测试端口连通性:
    • 若连接失败,说明端口被防火墙拦截,需重新配置入站规则;
    • 若连接成功,说明端口通,继续排查其他问题。

3. 检查MySQL用户远程访问权限

  • 登录服务器的phpMyAdmin,进入用户账户页面,找到用于连接的MySQL用户(如root):
    • 确认用户的主机字段为%(允许所有IP访问),而非localhost或特定IP;
    • 若主机不符,修改后点击执行,再执行SQL语句FLUSH PRIVILEGES;刷新权限。

4. 核对NetBeans JDBC连接参数

  • 在NetBeans添加数据库连接时,确保参数正确:
    • 主机名:192.168.0.2
    • 端口号:3306(与服务器MySQL配置一致)
    • 数据库名称:与服务器上目标库完全匹配
    • 用户名/密码:服务器MySQL的有效账户,且已配置远程访问权限
  • 可通过手动编写JDBC代码测试连接,获取更精准的报错信息:
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    public class TestRemoteDB {
        public static void main(String[] args) {
            String dbUrl = "jdbc:mysql://192.168.0.2:3306/your_database_name?useSSL=false&serverTimezone=UTC";
            String dbUser = "your_username";
            String dbPass = "your_password";
    
            try (Connection conn = DriverManager.getConnection(dbUrl, dbUser, dbPass)) {
                System.out.println("远程数据库连接成功");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

5. 排查客户端本地限制

  • 暂时关闭客户端机器的防火墙,测试是否能连接,若成功则需在客户端防火墙添加允许访问192.168.0.2:3306的出站规则。
  • 检查NetBeans代理设置:进入Tools > Options > General,选择No Proxy,或确保代理排除了192.168.0.2地址。

6. 重启MySQL服务

  • 在服务器XAMPP控制面板中停止MySQL服务,等待10秒后重新启动,再尝试客户端连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:52:44