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

在Kotlin中使用java.sql.DriverManager连接MySQL失败求助

排查步骤与解决方法

1. 修正JDBC URL格式

mysql-connector-j 8.0及以上版本(包括9.0)强制要求指定时区参数,否则会触发驱动加载异常。确保URL包含serverTimezone参数,示例:

jdbc:mysql://35.194.200.2:3306/GCP?serverTimezone=UTC&useSSL=false

useSSL=false可按需添加,避免无SSL连接时的警告。

2. 确认驱动类全限定名正确

9.0版本已完全弃用旧驱动类com.mysql.jdbc.Driver,必须使用新的类名com.mysql.cj.jdbc.Driver。遇到加载问题时,可手动触发类加载(JDBC4.2+支持自动加载,但手动加载能快速排查类路径问题),代码示例:

import java.sql.DriverManager
import java.sql.SQLException

fun main() {
    val url = "jdbc:mysql://35.194.200.2:3306/GCP?serverTimezone=UTC&useSSL=false"
    val user = "dev"
    val password = "0000"

    try {
        // 手动加载驱动类
        Class.forName("com.mysql.cj.jdbc.Driver")
        val connection = DriverManager.getConnection(url, user, password)
        println("数据库连接成功!")
        connection.close()
    } catch (e: ClassNotFoundException) {
        println("找不到MySQL驱动类:${e.message}")
    } catch (e: SQLException) {
        println("数据库连接失败:${e.message}")
    }
}

3. 验证jar包是否在运行类路径中

  • 手动添加jar的场景:检查IDE项目结构,确认jar已被添加为Library,且运行配置的Classpath中包含该jar。比如IntelliJ中右键jar选择「Add as Library」。
  • 构建工具(Maven/Gradle)场景:确保依赖配置正确
    Maven依赖:
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>9.0.0</version>
    </dependency>
    
    Gradle(Kotlin DSL)依赖:
    implementation("com.mysql:mysql-connector-j:9.0.0")
    
    执行构建命令刷新依赖,确认jar已正确下载并引入。

4. 处理Java模块系统限制(Java 9+)

如果项目使用Java模块系统(存在module-info.java),必须在模块声明中添加驱动依赖:

module your.module.name {
    requires mysql.connector.j;
}

否则JVM无法从模块路径中识别驱动类。

5. 测试网络连通性

验证本地机器能否ping通35.194.200.2,且3306端口开放(可使用telnet 35.194.200.2 3306测试)。网络不通也可能触发「无可用驱动」的错误提示。

内容的提问来源于stack exchange,提问作者黃奕捷

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 09:09:54