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

无法从NetBeans及Windows Server虚拟机连接远程Ubuntu MySQL求助

远程MySQL连接超时排查步骤

第一步:排查Ubuntu服务器端口监听与防火墙规则

  • 先确认MySQL确实在0.0.0.0的3306端口监听,在Ubuntu服务器执行命令:ss -tulnp | grep mysqld,正常输出应该包含0.0.0.0:3306的监听条目,如果没有的话重启MySQL服务再验证:systemctl restart mysql
  • 检查Ubuntu自带的ufw防火墙是否开放3306端口,执行:ufw status,如果没有3306端口的ALLOW规则,执行:ufw allow 3306/tcp,之后重载ufw规则:ufw reload
  • 如果服务器用了云服务商的安全组,需要在云平台控制台的安全组入站规则里添加允许3306/tcp端口的规则,源地址可以先临时设为0.0.0.0/0验证,排查完成后再缩小到你自己的IP段提高安全性

第二步:验证网络连通性

  • 从你本地安装NetBeans的机器和Windows Server 2019虚拟机上,分别用工具测试3306端口连通性:
    • Windows环境下cmd执行:telnet 你的Ubuntu服务器公网IP 3306,如果能进入空白终端说明端口连通正常,如果提示连接失败说明网络层面被拦截
    • 也可以用PowerShell命令测试:Test-NetConnection 你的Ubuntu服务器公网IP -Port 3306,看TcpTestSucceeded字段是否为True
  • 如果端口连通失败,排查中间网络的路由、防火墙拦截,比如你本地网络的出口防火墙是否禁止了3306端口的出站请求

第三步:验证MySQL账号权限配置

  • 在Ubuntu服务器本地登录MySQL,执行命令查看账号权限:SELECT user,host FROM mysql.user WHERE user='你创建的远程用户名';,确认host字段确实是%
  • 给账号追加远程访问的权限,执行:GRANT ALL PRIVILEGES ON 你要访问的数据库名.* TO '用户名'@'%'; 之后刷新权限:FLUSH PRIVILEGES;
  • MySQL 8.0默认用caching_sha2_password认证插件,部分旧的JDBC驱动不支持该认证方式,可修改账号的认证方式为mysql_native_password:ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码'; 之后再次执行FLUSH PRIVILEGES;

第四步:排查NetBeans客户端配置

  • 确认NetBeans里的MySQL连接串配置正确,格式为:jdbc:mysql://你的Ubuntu服务器公网IP:3306/数据库名?useSSL=false&serverTimezone=UTC,注意关闭SSL验证、配置正确的时区,避免连接报错
  • 检查NetBeans的代理配置:依次点击工具 -> 选项 -> 常规 -> 代理设置,如果不需要代理的话选择「无代理」,避免代理拦截数据库连接请求
  • 确认NetBeans使用的MySQL JDBC驱动版本与MySQL 8.0.27兼容,推荐使用8.0以上版本的驱动包

内容的提问来源于stack exchange,提问作者Furqan Ahmed Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:27:06