目录
- 第一步:环境准备
- 1 安装 MySQL 服务器
- 2 安装 Java 开发环境
- 3 安装 MySQL JDBC 驱动
- 第二步:Java 代码实现
- 1 创建数据库和用户
- 2 编写 Java 连接代码
- 3 代码详解
- 第三步:编译与运行
- 1 手动编译与运行
- 2 使用 Maven/Gradle(推荐)
- 第四步:常见问题与解决方案
- 1
ClassNotFoundException - 2
CommunicationsException/Connection refused - 3
Access denied(权限问题) - 4
No suitable driver found
- 1
- 第五步:最佳实践与进阶
- 1 使用连接池
- 2 使用
try-with-resources自动关闭资源 - 3 从配置文件读取信息
第一步:环境准备
在开始编码之前,请确保你的 Linux 系统上已经安装了必要的软件。

1 安装 MySQL 服务器
如果你的系统还没有安装 MySQL,可以使用包管理器进行安装。
对于 Debian/Ubuntu 系统:
# 更新软件包列表 sudo apt update # 安装 MySQL 服务器 sudo apt install mysql-server # 安全配置向导(建议运行,设置 root 密码等) sudo mysql_secure_installation
对于 CentOS/RHEL/Fedora 系统:
# 安装 MySQL 服务器 sudo yum install mysql-server # 启动 MySQL 服务 sudo systemctl start mysqld # 设置开机自启 sudo systemctl enable mysqld # 运行安全配置向导 sudo mysql_secure_installation
安装完成后,可以登录 MySQL 检查:

mysql -u root -p
2 安装 Java 开发环境
你需要安装 JDK (Java Development Kit) 来编译和运行 Java 代码。
对于 Debian/Ubuntu 系统:
# 安装 OpenJDK 11 (或 17, 8 等你需要的版本) sudo apt install openjdk-11-jdk
对于 CentOS/RHEL/Fedora 系统:
# 安装 OpenJDK 11 sudo yum install java-11-openjdk-devel
验证 Java 是否安装成功:

java -version javac -version
你应该能看到已安装的 Java 版本信息。
3 安装 MySQL JDBC 驱动
这是 Java 连接 MySQL 的核心组件,它是一个 JAR (Java Archive) 文件,我们推荐使用 Maven 或 Gradle 来管理依赖,但这里也展示手动下载的方式。
推荐方式:使用 Maven (见第三步)
手动下载方式:
- 访问 MySQL 官方驱动下载页面:MySQL Connector/J
- 选择 "Platform Independent" (平台独立) 版本,下载 ZIP 压缩包。
- 解压压缩包,你会找到一个名为
mysql-connector-j-x.x.x.jar(或类似名字) 的文件。 - 将这个 JAR 文件放在一个方便的位置,
/home/your_user/libs/。
第二步:Java 代码实现
现在我们来编写 Java 代码来连接 MySQL。
1 创建数据库和用户
在 MySQL 中创建一个用于测试的数据库和一个专门的用户。
-- 登录 MySQL mysql -u root -p -- 创建一个名为 'java_test_db' 的数据库 CREATE DATABASE java_test_db; -- 创建一个新用户 'java_user',密码为 'your_password',并授予其对 'java_test_db' 的所有权限 CREATE USER 'java_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON java_test_db.* TO 'java_user'@'localhost'; -- 刷新权限使更改生效 FLUSH PRIVILEGES; -- 退出 MySQL exit;
2 编写 Java 连接代码
创建一个名为 JdbcExample.java 的文件。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcExample {
// 数据库连接信息
// 注意:MySQL 8.0+,请使用 com.mysql.cj.jdbc.Driver
private static final String DB_URL = "jdbc:mysql://localhost:3306/java_test_db?useSSL=false&serverTimezone=UTC";
private static final String USER = "java_user";
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 from Java!' as message")) {
// 检查连接是否成功
if (conn != null) {
System.out.println("连接数据库成功!");
}
// 处理结果集
while (rs.next()) {
// 通过列名获取数据
String message = rs.getString("message");
System.out.println("数据库返回消息: " + message);
}
} catch (SQLException e) {
System.err.println("数据库连接或查询失败!");
e.printStackTrace();
}
}
}
3 代码详解
DB_URL: 数据库的连接字符串。jdbc:mysql://: 协议和子协议。localhost:3306: 数据库服务器的地址和端口。/java_test_db: 要连接的数据库。?useSSL=false: 在开发环境中禁用 SSL(生产环境应启用)。&serverTimezone=UTC: 指定服务器时区,避免警告。
USER和PASS: 你在 2.1 步骤中创建的用户名和密码。DriverManager.getConnection(): 核心方法,用于建立与数据库的连接。try-with-resources: 这是 Java 7+ 的一个特性,可以自动实现AutoCloseable接口的对象(如Connection,Statement,ResultSet)在代码块执行完毕后自动关闭,无需手动调用close(),能有效防止资源泄漏。Statement: 用于执行静态 SQL 语句。executeQuery(): 执行查询语句,返回一个ResultSet对象,包含了查询结果。ResultSet: 表示查询结果集,你可以通过next()方法遍历每一行,并用getXXX()方法获取列的值。SQLException: 所有与数据库相关的操作都可能抛出此异常,需要捕获处理。
第三步:编译与运行
你有两种主要的方式来编译和运行这段代码。
1 手动编译与运行
-
编译: 你需要告诉
javac编译器去哪里找 JDBC 驱动 JAR 文件,使用-cp(classpath) 选项。假设你的
mysql-connector-j-x.x.x.jar文件在/home/your_user/libs/目录下。# -cp 指定了 JAR 文件的路径,. 表示当前目录 javac -cp "/home/your_user/libs/mysql-connector-j-x.x.x.jar:." JdbcExample.java
注意:在 Linux 和 macOS 上,classpath 分隔符是冒号 ,而在 Windows 上是分号 。
-
运行: 运行时同样需要提供 classpath。
# java 命令也需要 -cp 来指定运行时依赖 java -cp "/home/your_user/libs/mysql-connector-j-x.x.x.jar:." JdbcExample
如果一切顺利,你应该会看到输出:
连接数据库成功! 数据库返回消息: Hello, MySQL from Java!
2 使用 Maven/Gradle(强烈推荐)
使用构建工具可以极大地简化依赖管理和编译运行过程。
使用 Maven:
-
创建项目结构:
my-java-app/ ├── pom.xml └── src/ └── main/ └── java/ └── JdbcExample.java -
**编写 `
