java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
时间: 2023-10-22 07:34:09 浏览: 42
这个异常通常是由于 MySQL 8.0 版本默认使用了新的加密插件而导致的。在旧版本的 JDBC 驱动程序中,这个加密插件是不受支持的,因此会出现这个异常。
要解决这个问题,有两种方法:
1.升级 JDBC 驱动程序版本。
您可以从 MySQL 官方网站下载最新版本的 JDBC 驱动程序,然后将其添加到您的项目中。
2.修改 MySQL 服务器配置。
在 MySQL 8.0 版本中,默认情况下启用了新的加密插件,但是您可以通过修改 MySQL 服务器配置来禁用它。要禁用这个插件,请在 MySQL 配置文件中添加以下行:
[mysqld]
default_authentication_plugin=mysql_native_password
这将告诉 MySQL 服务器使用旧的加密插件,以便您的应用程序可以正常连接到数据库。
相关问题
ava.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required 是由于 MySQL Connector/J 驱动版本与 MySQL 服务器版本不兼容所引起的。这个问题可以通过更新 MySQL Connector/J 驱动版本来解决。
在你提供的引用[3]中,你的 pom.xml 里的数据库驱动依赖需要更改,将 mysql-connector-java 依赖版本升级到 MySQL 服务器版本对应的版本即可。例如,如果你的 MySQL 服务器版本是 8.0.x,那么你可以将 mysql-connector-java 依赖版本升级到 8.0.x 对应的版本。--相关问题--:
版本正确,连接数据库时java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
这个错误通常是由于 MySQL 8.0 版本的加密方式更新导致的。解决方法是在连接数据库时添加一个参数,指定使用旧的加密方式。具体操作如下:
1. 在连接数据库的 URL 后面添加一个参数:`?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&useLegacyDatetimeCode=false&useServerPrepStmts=false&sessionVariables=sql_mode='NO_ENGINE_SUBSTITUTION'&jdbcCompliantTruncation=false&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useOldAliasMetadataBehavior=true`
2. 在连接数据库时,指定使用旧的加密方式:`jdbc:mysql://localhost:3306/your_database?useSSL=false&allowPublicKeyRetrieval=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useOldAliasMetadataBehavior=true`
阅读全文