Spring Boot连接MySQL报CLIENT_PLUGIN_AUTH is required错误如何解决?
报错原因及解决步骤
该报错核心为MySQL驱动版本与本地WampServer自带的MySQL服务版本不兼容,或配置存在语法错误,按以下步骤排查即可解决:
1. 确认本地MySQL版本
在SQLyog中执行如下命令查看版本:
SELECT VERSION();
版本适配调整:
- 若MySQL版本 ≤5.5:Spring Boot默认拉取的8.x系列驱动不兼容低版本MySQL,需修改
gradle.build依赖指定5.1.x系列驱动:
将原有runtimeOnly 'mysql:mysql-connector-java'替换为:
你当前配置的runtimeOnly 'mysql:mysql-connector-java:5.1.49'com.mysql.jdbc.Driver驱动类无需修改。 - 若MySQL版本 ≥5.6:可保留8.x系列驱动,需修改驱动类配置为8.x专属路径:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
2. 修正JDBC连接URL配置
补充必要参数避免连接校验异常:
- 5.x版本URL修改为:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false - 8.x版本URL需额外补充时区参数:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
3. 修正配置文件语法错误
你当前application.properties中spring.jpa.show-sql: true使用了YAML格式的冒号分隔符,Properties格式需使用等号,修改为:
spring.jpa.show-sql=true
4. 调整用户认证插件(以上步骤无效时执行)
若修改后仍报错,说明当前数据库用户的认证插件不被驱动支持,在SQLyog中执行如下SQL修改即可:
ALTER USER 'shafin'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin'; FLUSH PRIVILEGES;
完成以上操作后重启Spring Boot项目即可正常连接MySQL。
内容的提问来源于stack exchange,提问作者Mahmudul Hasan Shafin
相关产品推荐
相关产品推荐

