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

Java连接MySQL报错:客户端不支持服务器认证协议求助

解决Java连接MySQL 9.0时的Client does not support authentication protocol异常

这个异常的核心原因是你的Java JDBC驱动版本过低,不支持MySQL Server 9.0要求的认证协议。以下两种方案可以解决问题:

方案一:升级MySQL JDBC驱动

这是推荐的长期解决方案,确保驱动与MySQL Server版本兼容:

  • 若使用Maven,更新pom.xml中的依赖:
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>8.0.39</version> <!-- 选择兼容MySQL 9.0的最新稳定版 -->
    </dependency>
    
  • 若使用Gradle,更新build.gradle:
    implementation 'com.mysql:mysql-connector-j:8.0.39'
    
  • 手动管理依赖的话,获取对应版本的驱动JAR包,添加到项目的类路径中。
  • 注意:MySQL Connector/J 8.0+版本的驱动类名已更新为com.mysql.cj.jdbc.Driver,同时JDBC URL需指定时区参数,示例:
    String jdbcUrl = "jdbc:mysql://localhost:3306/your_database?serverTimezone=UTC&useSSL=false";
    

方案二:修改MySQL用户认证方式(临时兼容)

如果暂时无法升级驱动,可将数据库用户的认证方式切换为旧版兼容的mysql_native_password:

  1. 通过MySQL Workbench连接到你的MySQL 9.0服务器
  2. 执行以下SQL语句(替换your_username和your_password为实际的用户名和密码):
    ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
    FLUSH PRIVILEGES;
    
    • 若需要远程连接,将localhost替换为%(允许所有IP)或指定的IP地址
  3. 执行完成后重启Java程序,即可正常连接数据库

内容的提问来源于stack exchange,提问作者Prasad Kunjir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 23:14:52