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

Java测验应用Jar包在局域网客户端运行时MySQL连接超时问题

解决Java测验应用局域网内MySQL连接超时问题

本地运行Java测验应用Jar包时数据库连接正常,但部署到局域网其他客户端机器时,抛出以下错误:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.ConnectException: Connection timed out: connect
STACKTRACE:
java.net.SocketException: java.net.ConnectException: Connection timed out: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:151)

结合你提供的数据库连接代码(已将连接字符串改为局域网IP 192.168.150.105),以下是针对性的排查和解决步骤:

  • 检查数据库服务器防火墙
    确保数据库所在机器(192.168.150.105)的防火墙允许3306端口的入站连接:

    • Windows系统:在防火墙高级设置中添加规则,开放3306端口给局域网网段;
    • Linux系统:执行 firewall-cmd --add-port=3306/tcp --permanent,再重启防火墙服务。
  • 修改MySQL远程访问权限
    默认root用户仅允许本地访问,需要授权其从局域网连接:
    登录MySQL服务器,执行以下SQL:

    GRANT ALL PRIVILEGES ON demoquiz.* TO 'root'@'%' IDENTIFIED BY '';
    FLUSH PRIVILEGES;
    

    若要限制特定网段访问,可将%替换为192.168.150.%,提升安全性。

  • 调整MySQL绑定地址配置
    打开MySQL配置文件(my.cnf或my.ini),找到bind-address项:

    • 将值改为0.0.0.0(允许所有IP访问)或192.168.150.105(仅局域网IP访问),不要保留默认的127.0.0.1(仅本地访问);
      修改后重启MySQL服务生效。
  • 测试客户端与服务器的网络连通性
    在客户端机器上执行:

    • ping 192.168.150.105:验证网络是否可达;
    • telnet 192.168.150.105 3306:验证3306端口是否开放,连接失败则回到防火墙或MySQL配置排查。
  • 代码优化建议(可选)
    你的代码每次操作都创建新连接,建议使用连接池(如HikariCP)管理连接,提升性能与稳定性;另外JDBC4.0+版本可省略Class.forName("com.mysql.jdbc.Driver");,驱动会自动注册。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:22:47