- 旧版 (已不推荐):
mysql-connector-java-5.x.x.jar(基于 Type 4 JDBC 驱动) - 新版 (当前推荐):
mysql-connector-j-8.x.x.jar(基于 Type 4 JDBC 驱动,是官方驱动的新命名) - 最现代的方式: 使用构建工具(Maven/Gradle)自动管理依赖,无需手动下载和配置JAR包。
驱动名称的演变:mysql-connector-java vs mysql-connector-j
你可能会在网上看到两种名字,它们其实指向的是同一个东西,只是版本不同。

-
mysql-connector-java:- 这是过去驱动包的名称,版本从 5.x.x 开始。
- 当你使用旧版 MySQL (如 5.7) 或 Java 8 时,这个驱动是首选。
- 注意:这个名称在 Maven 仓库中已被弃用。
-
mysql-connector-j:- 这是从 MySQL 8.0 版本开始,官方推荐的驱动名称。
- 它是
mysql-connector-java的继承者,修复了旧版本的问题,并支持 MySQL 8.0 的新特性(如新的认证插件)。 - 这是目前你应该使用的驱动,即使你连接的是 MySQL 5.7 或 5.6 版本的服务器,使用
mysql-connector-j也是完全兼容且推荐的。
忘记 mysql-connector-java,直接寻找和使用 mysql-connector-j。
如何获取 JAR 包
获取JAR包主要有两种方式:手动下载 和 通过构建工具自动管理。

手动下载 (适用于不使用构建工具的简单项目)
这是最传统的方式,适合初学者或小型项目。
-
访问官网:
- 打开 MySQL 官方驱动下载页面:https://dev.mysql.com/downloads/connector/j/
-
选择版本和平台:
- Product Version: 选择 "Generally Available (GA) Releases"(最新稳定版)即可。
- Operating System: 选择 "Platform Independent"。
- Architecture: 选择 "Architecture Independent"。
-
下载:
(图片来源网络,侵删)- 你会看到两个下载选项:
- ZIP Archive (mysql-connector-j-x.x.x.zip): 推荐下载这个,它包含了JAR文件、文档和一些示例代码。
- TAR Archive (mysql-connector-j-x.x.x.tar.gz): Linux/Unix 用户使用。
- 你会看到两个下载选项:
-
解压并找到 JAR 文件:
- 解压下载的 ZIP 文件。
- 在
mysql-connector-j-x.x.x文件夹中,你会找到一个名为mysql-connector-j-x.x.x.jar的文件,这就是你需要的JAR包。
-
在项目中配置:
-
IDE (如 IntelliJ IDEA, Eclipse):
- 右键你的项目 -> Build Path / Project Structure -> Libraries / Modules。
- 点击 "Add External JARs..." 或类似按钮,然后选择你刚刚下载的
mysql-connector-j-x.x.x.jar文件。
-
命令行编译:
- 你需要使用
-cp(classpath) 参数来指定JAR包的位置。# 编译 Java 文件 javac -cp ".;C:\path\to\your\mysql-connector-j-8.0.xx.jar" YourJavaFile.java
运行 class 文件
java -cp ".;C:\path\to\your\mysql-connector-j-8.0.xx.jar" YourJavaFile
*注意*: Windows 上路径分隔符是 `;`,Linux/Mac 上是 `:`。 - 你需要使用
-
使用构建工具 (Maven / Gradle) - 强烈推荐
这是现代Java开发的标准做法,你不需要手动下载任何东西,构建工具会自动帮你下载并管理所有依赖。
Maven 示例
在你的 pom.xml 文件中,添加以下依赖:
<dependencies>
<!-- MySQL Connector/J -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version> <!-- 建议使用最新的稳定版本 -->
</dependency>
</dependencies>
groupId:com.mysqlartifactId:mysql-connector-jversion: 你想使用的版本号。
保存 pom.xml 文件后,IDE(如IntelliJ IDEA或Eclipse)会自动检测到变化并下载依赖,你也可以在命令行运行 mvn clean install 来下载。
Gradle 示例
在你的 build.gradle (或 build.gradle.kts) 文件中,添加以下依赖:
// build.gradle
dependencies {
// MySQL Connector/J
implementation 'com.mysql:mysql-connector-j:8.0.33' // 建议使用最新的稳定版本
}
// build.gradle.kts
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
// ...
kotlin("jvm") version "1.8.21"
}
dependencies {
// MySQL Connector/J
implementation("com.mysql:mysql-connector-j:8.0.33") // 建议使用最新的稳定版本
}
保存文件后,IDE或Gradle命令(gradle build)会自动处理依赖下载。
连接代码示例
无论你用哪种方式获取JAR包,连接数据库的Java代码都是一样的。
关键点:URL 字符串的格式
JDBC URL 的格式至关重要,特别是对于 MySQL 8.0。
通用格式:
jdbc:mysql://[主机名]:[端口]/[数据库名]?[属性]
- 主机名: MySQL 服务器的地址,如
localhost或0.0.1。 - 端口: MySQL 的默认端口是
3306。 - 数据库名: 你要连接的数据库的名称。
- 属性: 用于配置连接的参数。
MySQL 8.0+ 的重要变化:
从 MySQL 8.0 开始,默认的认证插件从 mysql_native_password 改为了 caching_sha2_password,如果你的 JDBC 驱动版本过低(比如还在用 5.x),或者没有正确配置,可能会遇到 Authentication plugin 'caching_sha2_password' reported error 的错误。
解决方法是在 URL 中添加 useSSL=false 和 allowPublicKeyRetrieval=true 属性。
代码示例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQLConnectionExample {
// 数据库连接信息
// 请根据你的实际情况修改这些值
private static final String DB_URL = "jdbc:mysql://localhost:3306/your_database_name?useSSL=false&allowPublicKeyRetrieval=true";
private static final String USER = "your_username";
private static final String PASS = "your_password";
public static void main(String[] args) {
// try-with-resources 语句,确保资源在使用后被自动关闭
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT 'Hello, MySQL!'")) {
// 检查连接是否成功
if (conn != null) {
System.out.println("连接到 MySQL 数据库成功!");
}
// 处理查询结果
while (rs.next()) {
// 假设查询返回一个字符串列
String message = rs.getString(1);
System.out.println("查询结果: " + message);
}
} catch (SQLException e) {
System.err.println("连接数据库失败!");
e.printStackTrace();
}
}
}
总结与最佳实践
| 项目 | 推荐做法 | 原因 |
|---|---|---|
| JAR 包名称 | mysql-connector-j |
官方当前标准,支持最新特性。 |
| 获取方式 | Maven / Gradle | 自动管理依赖,避免版本冲突,简化项目配置。 |
| 连接 URL | jdbc:mysql://host:port/db?useSSL=false&allowPublicKeyRetrieval=true |
兼容 MySQL 8.0 的新认证机制,简化本地开发配置。 |
| 代码编写 | 使用 try-with-resources |
自动关闭 Connection, Statement, ResultSet,防止资源泄漏。 |
对于任何新的Java项目,请务必采用 Maven/Gradle + mysql-connector-j 的组合,这是最稳定、最现代、最省心的方案。
