讲师中心 微信公众号
AI工具推荐 视频效率加速

如何让 Java 项目 JAR 包在其他电脑上远程连接 MySQL 数据库

秋杰君_6994

秋杰君_6994

发布时间:2026-03-08 22:36:02

|

629人浏览过

|

来源于php中文网

原创

如何让 Java 项目 JAR 包在其他电脑上远程连接 MySQL 数据库

本文详解如何将本地开发的 java + mysql 项目(打包为 jar)部署到另一台计算机,并实现跨机器数据库访问,涵盖 mysql 远程授权、网络配置、jdbc 连接字符串修改及安全注意事项。

本文详解如何将本地开发的 java + mysql 项目(打包为 jar)部署到另一台计算机,并实现跨机器数据库访问,涵盖 mysql 远程授权、网络配置、jdbc 连接字符串修改及安全注意事项。

在实际开发与部署中,常遇到这样的场景:你在 Computer A 上完成了一个基于 MySQL 的 Java 桌面应用(如带登录验证的系统),并打包为可执行 JAR 文件;但希望该 JAR 能在 Computer B 上运行,同时仍能访问 Computer A 上的 MySQL 数据库。这并非“把数据库搬过去”,而是让 Computer B 作为客户端,通过网络远程连接 Computer A 上正在运行的 MySQL 服务。 实现这一目标需协同完成三方面配置:MySQL 服务端授权、网络连通性保障、Java 客户端连接参数适配。

✅ 第一步:配置 MySQL 允许远程访问

默认情况下,MySQL 仅监听 localhost(即 127.0.0.1),拒绝来自其他 IP 的连接。需进行以下操作(以 MySQL 8.0+ 为例,在 Computer A 上执行):

  1. 登录 MySQL(使用 root 或高权限账户):

    mysql -u root -p
  2. 创建或授权远程用户(推荐新建专用用户,避免直接开放 root):

    立即学习“Java免费学习笔记(深入)”;

    -- 创建用户(允许从任意IP连接,生产环境建议限定IP,如 'app_user'@'192.168.1.%')
    CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPass123!';
    
    -- 授予对目标数据库的必要权限(例如数据库名为 `login_db`)
    GRANT SELECT, INSERT, UPDATE ON login_db.* TO 'app_user'@'%';
    
    -- 刷新权限
    FLUSH PRIVILEGES;
  3. 确认 MySQL 绑定地址(关键!)
    编辑 MySQL 配置文件(Windows: my.ini;Linux/macOS: /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf),找到 bind-address 行:

    # 修改前(仅本地)
    bind-address = 127.0.0.1
    
    # 修改后(允许所有IPv4连接,或指定Computer A内网IP如 192.168.1.100)
    bind-address = 0.0.0.0

    ⚠️ 修改后务必重启 MySQL 服务:

    # Windows
    net stop mysql && net start mysql
    
    # Linux/macOS
    sudo systemctl restart mysql

✅ 第二步:确保两台计算机处于同一局域网并可互通

  • Computer A 和 Computer B 必须连接到同一个局域网(如同一 WiFi、同一交换机下的有线网络)。
  • 在 Computer B 上,使用 ping 测试能否到达 Computer A 的 IP:
    ping 192.168.1.100  # 替换为Computer A的实际内网IP
  • 获取 Computer A 的内网 IP(Windows 执行 ipconfig,Linux/macOS 执行 ifconfig 或 ip a),重点关注 IPv4 Address(如 192.168.1.100)。

? 验证 MySQL 端口(默认 3306)是否可达:在 Computer B 上运行

telnet 192.168.1.100 3306

若连接成功(黑屏/无报错),说明网络与端口已通;若失败,请检查防火墙设置(见下方注意事项)。

✅ 第三步:修改 Java 项目中的 JDBC 连接字符串

在你的 Java 项目中,原连接字符串类似:

String url = "jdbc:mysql://localhost:3306/login_db";

打包前必须将其更新为 Computer A 的实际内网 IP 和端口:

// ✅ 正确示例(假设Computer A的IP是192.168.1.100)
String url = "jdbc:mysql://192.168.1.100:3306/login_db?useSSL=false&serverTimezone=UTC";
String username = "app_user";
String password = "StrongPass123!";

? 建议将连接参数(URL、用户名、密码)外部化(如通过 application.properties 或启动参数传入),避免硬编码,提升部署灵活性。

⚠️ 关键注意事项与安全提醒

  • 防火墙放行: Windows Defender 防火墙或第三方防火墙可能拦截 3306 端口。需在 Computer A 上手动添加入站规则,允许 TCP 端口 3306。
  • 避免使用 root 远程: 生产环境严禁开放 root@'%',应遵循最小权限原则,为每个应用创建独立用户并限定访问范围(如 'app_user'@'192.168.1.0/24')。
  • JAR 依赖完整性: 确保打包时包含 MySQL Connector/J(如 mysql-connector-java-8.0.33.jar),且版本与 MySQL 服务端兼容。
  • SSL 与安全性: 本文示例禁用 SSL(useSSL=false)便于调试,正式环境必须启用 SSL 并配置信任证书,防止凭据明文传输。
  • 公网暴露风险: 本文方案仅适用于可信局域网。切勿将 MySQL 直接暴露于公网,如需外网访问,请通过 SSH 隧道、反向代理或云数据库服务(如 AWS RDS、阿里云 RDS)实现。

完成以上步骤后,在 Computer B 上双击或命令行运行 JAR 文件,即可成功连接 Computer A 的 MySQL 数据库,完成登录验证等操作。整个过程本质是构建一个轻量级的 C/S 架构——Computer A 是数据库服务器,Computer B 是 Java 应用客户端。

热门AI工具

更多
创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

11357

2023.06.15

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

8462

2023.07.05

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

7292

2023.07.31

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1224

2023.08.01

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

988

2023.08.02

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

1456

2023.08.02

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2989

2023.08.02

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

20251

2023.08.03

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

100

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 192人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn