跳转到主内容
极星编程网:以代码为星,赴技术山海!

如何在Java中配置数据库开发环境_MySQL数据库环境搭建说明

MySQL服务未运行是Java应用连接失败的主因;需验证服务状态、添加8.3.0版mysql-connector-j驱动、配置含时区和SSL参数的JDBC URL,并通过SELECT 1测试真实连通性。 确认 MySQL 服务已正确安装并运行 很多 Java 应用启动时报
Communications link failure
或
Connection refused
,根本原因不是代码写错,而是本地根本没跑起来 MySQL。先验证服务状态: Windows:打开任务管理器 → 服务标签页 → 找到
MySQL80
(或类似名称),确保状态为“正在运行”;也可在命令行执行
sc query MySQL80
mac OS/Linux:终端运行
brew services list | grep mysql
(Homebrew 安装)或
sudo systemctl status mysql
通用验证:执行
mysql -u root -p
,能成功登录即说明服务就绪 添加 MySQL JDBC 驱动依赖(Maven) Java 连 MySQL 必须通过 JDBC 驱动,版本不匹配会导致
ClassNotFoundException
或连接后无法执行某些 SQL(如 JSON 字段操作)。推荐使用官方最新稳定版:
mysql mysql-connector-j 8.3.0
注意:
mysql-connector-java
已在 8.0.33 后废弃,新项目必须用
mysql-connector-j
;若用旧版驱动连 MySQL 8+,可能因默认启用 caching_sha2_pass word 认证而报
Public Key Retrieval is not allowed
错误。 配置 JDBC URL 与连接参数 URL 格式不对是连接失败最常见原因。MySQL 8+ 默认要求显式指定时区和服务器证书策略: 立即学习 “ Java免费学习笔记(深入) ”; ChatGPT (Windows) ChatGPT Windows 版本优化了系统兼容性与响应速度,提供多任务处理和对话记录管理功能,适用于办公辅助、创意写作、学习辅导和日常问答。它能帮助用户快速生成文稿、整理资料和高效获取信息,为个人和团队提供稳定、流畅的生产力体验。 下载 基础格式:
jdbc:mysql://localhost:3306/your_db?serverTimezone=Asia/Shanghai&useSSL=false
若仍报
Unknown system variable 'query_cache_size'
,说明驱动试图兼容老版本协议,加
&allowPublicKeyRetrieval=true
生产环境建议启用 SSL:
&useSSL=true&requireSSL=true
,并配置信任库 连接池(如 HikariCP)中不要在 URL 里写
autoReconnect=true
—— 现代驱动已弃用该参数,应靠连接池自身的健康检查机制处理断连 测试连接是否真正可用(不只是 DriverManager.getConnection) 只调用
DriverManager.getConnection(...)
成功不代表数据库就 ready。常见陷阱是连接建立但无法执行查询,比如权限不足或表不存在:
try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT 1")) { if (rs.next()) { System.out.println("✅ 数据库连接与基础查询正常"); } } catch (SQLException e) { System.err.println("❌ 连接失败:" + e.getMessage()); }
务必加上实际查询(哪怕只是
SELECT 1
),否则会掩盖
Access denied for user
或
No database selected
类错误。另外,
Connection
对象创建后不自动校验连通性,JDBC 驱动直到第一次执行语句才真正发包到服务端。 本地开发时最容易被忽略的是 MySQL 的 bind-address 配置 —— 如果
my.cnf
里写了
bind-address = 127.0.0.1
,那
localhost
走 socket 连接没问题,但换成
127.0.0.1
就可能因 DNS 解析或权限规则差异失败。

相关文章