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

NetBeans中JDBC连接MySQL报错:无法加载caching_sha2_password插件

解决NetBeans中无法加载caching_sha2_password认证插件的问题

这个问题我之前帮不少开发者排查过,核心原因很明确:你使用的com.mysql.jdbc.Driver是MySQL的旧版JDBC驱动(属于mysql-connector-java 5.x系列),而MySQL 8.0及以上版本默认采用的caching_sha2_password认证机制,是旧驱动完全不支持的。下面给你几个可行的解决办法,按推荐优先级排序:

方法一:升级JDBC驱动到最新版本

这是最稳妥的长期解决方案,新版驱动完美适配MySQL 8.0的所有特性:

  • 打开NetBeans,找到你的项目,右键点击「Libraries」→「Add JAR/Folder」
  • 下载最新的mysql-connector-j(原mysql-connector-java,版本8.x及以上),添加到项目依赖中
  • 修改连接代码里的驱动类为新版:com.mysql.cj.jdbc.Driver
  • 建议给JDBC URL加上时区参数,避免时区兼容问题,示例:
    jdbc:mysql://localhost:3306/world?zeroDateTimeBehavior=convertToNull&serverTimezone=UTC
    

方法二:修改MySQL用户的认证方式为mysql_native_password

如果你暂时不想升级驱动,可以把数据库用户的认证方式改成旧驱动支持的类型:

  1. 打开MySQL命令行客户端或可视化工具(如Navicat),登录到MySQL服务器
  2. 执行以下SQL语句(替换your_username和your_password为你的数据库账号密码):
    ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
    FLUSH PRIVILEGES;
    
  3. 回到NetBeans重新尝试建立连接,就能正常访问了

方法三:检查NetBeans的连接配置细节

有时候可能是配置里的驱动类选错了:

  • 打开NetBeans的「Services」窗口,找到「Databases」→「New Connection」
  • 在驱动选择界面,确保如果用旧驱动,对应选「MySQL Connector/J 5.x」;如果是新版则选「MySQL Connector/J 8.x」
  • 确认JDBC URL的参数格式正确,比如zeroDateTimeBehavior=convertToNull是否正确拼接

注意:方法二只是临时的兼容方案,长期来看更推荐方法一——mysql_native_password的安全性远不如caching_sha2_password,而且新版驱动会持续更新维护,适配更多新特性。

内容的提问来源于stack exchange,提问作者Vijay Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:30:33