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

如何通过Java/JDBC连接远程MySQL数据库?局域网场景实操咨询

通过JDBC连接局域网内远程MySQL的最优方案

嘿,这个问题我太熟悉了!咱们直接说重点:你提到的用IP地址写JDBC URL的方式完全可行,这就是局域网内连接远程MySQL的最优方式,根本不需要用RMI。下面给你拆解细节,确保连接顺畅:

一、先确认MySQL允许远程访问(关键步骤)

默认情况下,MySQL只允许本地主机(127.0.0.1)访问,所以得先在系统A的MySQL里做两件事:

  • 给数据库用户授权远程访问:
    打开系统A的MySQL命令行,执行授权语句(比如允许root用户从192.168.20.xxx整个网段访问):
    GRANT ALL PRIVILEGES ON mydb.* TO 'root'@'192.168.20.%' IDENTIFIED BY 'root';
    FLUSH PRIVILEGES;
    
    如果你想让root从任何IP访问(局域网内没问题),可以把192.168.20.%改成%,但生产环境不建议这么做。
  • 开放系统A的防火墙端口:
    确保系统A的防火墙允许3306端口(MySQL默认端口)的入站请求,不然局域网内的系统B根本连不上。

二、你的JDBC URL写法是正确的

你写的这段代码完全可以正常工作:

Connection con=DriverManager.getConnection("jdbc:mysql://192.168.20.10:3306/mydb?zeroDateTimeBehavior=convertToNull","root","root");

不过可以加几个实用参数优化体验,比如避免SSL警告、确保字符编码正确:

Connection con = DriverManager.getConnection(
    "jdbc:mysql://192.168.20.10:3306/mydb?zeroDateTimeBehavior=convertToNull&useSSL=false&useUnicode=true&characterEncoding=utf8",
    "root",
    "root"
);

三、为什么不需要RMI?

RMI(Java远程方法调用)是用来让Java程序调用另一台机器上Java程序的方法,和数据库连接完全是两码事。JDBC本身就是专门设计用来和数据库服务器直接通信的协议,不需要经过RMI这种中间层,用RMI反而会增加复杂度,完全没必要。

总结

局域网内连接远程MySQL的最优流程就是:

  • 给MySQL用户授权远程访问
  • 开放系统A的3306端口
  • 用带系统A IP的JDBC URL直接连接

内容的提问来源于stack exchange,提问作者pritam parab

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:43:12