Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
时间: 2023-11-15 22:03:30 浏览: 162
这个错误表明在尝试获取 JDBC 连接时发生了 SQLNonTransientConnectionException 异常,并且该异常表示需要启用 CLIENT_PLUGIN_AUTH 插件。这通常是因为 MySQL 8.0 版本以上的版本默认启用了新的加密插件,而旧的 JDBC 驱动程序不支持该插件所致。以下是一些可能的解决方法:
1.升级 JDBC 驱动程序:升级到 MySQL 官方支持的最新版本的 JDBC 驱动程序,以确保与数据库版本兼容。
2.启用旧的加密插件:在 MySQL 8.0 中,可以通过以下命令启用旧的加密插件:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
其中,'password' 是你的 MySQL root 用户的密码。
3.在 JDBC URL 中指定加密插件:在 JDBC URL 中添加以下参数,以指定使用旧的加密插件:
jdbc:mysql://localhost:3306/mydatabase?useSSL=false&allowPublicKeyRetrieval=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useOldAliasMetadataBehavior=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&useUnicode=true&characterEncoding=UTF-8&useSSL=false&useAffectedRows=true&clientPluginName=mysql_native_password
其中,clientPluginName=mysql_native_password 指定使用旧的加密插件。
阅读全文