跨机器连接XAMPP中MySQL:NetBeans JDBC连接超时求助
解决NetBeans连接远程XAMPP MySQL超时问题
1. 确认MySQL端口监听状态
- 打开服务器XAMPP的MySQL配置文件(
my.ini或my.cnf),检查port参数是否为默认的3306(若修改过需记对应端口)。 - 在服务器命令行执行:
确认输出中存在netstat -ano | findstr :33060.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
相关产品推荐
相关产品推荐

