Skip to content

How to resolve 'CLIENT_PLUGIN_AUTH is required' in SpringBoot apps

Problem

When developing Spring Boot JDBC applications, you might encounter the following error:

Terminal window
java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required

This error typically occurs when trying to connect to an older MySQL database using a newer version of the MySQL JDBC driver.

Environment

  • MySQL 5.1
  • Spring Boot 2.3

Reason

The error arises because Spring Boot is configured to use the newer MySQL JDBC driver (com.mysql.cj.jdbc.Driver), which is incompatible with older MySQL versions like 5.1. According to this post by Andreas, the solution is to explicitly specify the older driver class (com.mysql.jdbc.Driver) in your Spring Boot configuration.

Solution

To resolve this issue, you need to configure Spring Boot to use the correct JDBC driver for MySQL 5.1.

Step 1: Update application.properties

Specify the correct driver class name in your application.properties file:

application.properties
spring.datasource.driver-class-name: com.mysql.jdbc.Driver

Step 2: Update Dependencies

Ensure that your build.gradle file includes the correct MySQL JDBC driver version:

build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
runtimeOnly 'mysql:mysql-connector-java:5.1.40'
}

You can find the complete example code on GitHub.

Summary

In this post, we explored how to resolve the CLIENT_PLUGIN_AUTH is required error in Spring Boot applications. The key steps involve configuring the correct JDBC driver class in the application.properties file and ensuring that the correct MySQL JDBC driver version is included in your project dependencies. By following these steps, you can successfully connect your Spring Boot application to an older MySQL database.

Final Words + More Resources

My intention with this article was to help others who might be considering solving such a problem. So I hope that’s been the case here. If you still have any questions, don’t hesitate to ask me by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!