Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro ao conectar-se no MySQL community 8.0.18.0

Pessoal Boa Tarde. Meu ambiente DEV está configurado com o MySQL 8.0.18.0 e o "java version "1.8.0_261" , porem ultimo passo da Aula 02 Atividade 05 (Configurando o TransactionManager) falha com o erro abaixo :

Ago. 24, 2020 2:30:02 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/casadocodigo] threw exception [Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Could not open connection] with root cause
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client

Já vi aqui no Fórum que a solução foi fazer Downgrade para a versão 5.5 do MySQL , porem é uma coisa que estou evitando fazer, visto que a Tecnologia avança e os módulos do curso devem refletir a realidade e não usar um produto desatualizado no mercado.

Qual seria a melhor solução (com exceção de fazer downgrade do Banco-de-dados)?

1 resposta
solução!

Nesse caso você terá que atualizar o driver do "mysql-connector-java" no arquivo pom.xml para uma versão compatível com a versão do MySQL 8, exemplo:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.21</version>
</dependency>

Além disso, na versão 8.x do MySql, o nome da classe que implementa java.sql.Driver no MySQL Connector / J foi alterado de com.mysql.jdbc.Driver para com.mysql.cj.jdbc.Driver . O nome da classe antiga foi descontinuado. Então na classe JPAConfiguration você precisa informar o dataSource.setDriverClassName correspondente.