Há meses, estou com esse problema: ao tentar conectar o Java, usando a IDE NetBeans, ao MySQL, aparece a mensagem "unable to load authentication plugin ‘caching_sha2_password’ ".
Não há erro na Classe ConnectionFactory nem nas demais classes para persistência de dados (classes DAO), uma vez que consigo fazer um CRUD no PostgreSQL usando Java e Netbeans (com as devidas alterações, é claro).
Estou usando:
Windows 10 - 64 bits
Java 8
NetBeans 8.2
Workbench 8
MySQL Server 8.0.12
JDBC do MySQL 5.1.23
P.S. Já fiz o teste com o JDBC na mesma versão do MySQL Server, isto é, com o JDBC na versão 8 e, mesmo assim, não deu para conectar.
Cara também tive esse problema, não sei porque raios está acontecendo isso. Vi comentários falando que é o driver do Netbeans pra MySQL, mas como não sei de fato, desinstalei o MySQL Server, e instalei o WampServer, e não há dever que deu certo?
Cara, eu já desinstalei e reinstalei todo o pacote para Windows do MySQL e, até agora, não deu certo.
Já usei tanto o Driver do MySQL disponível no NetBeans, que é a versão 5, e já baixei o Driver da mesma versão do MySQL Server, que é na versão 8, mas, para todos os casos, não consigo fazer a conexão.
Minha salvação, até o momento, tem sido o PostgreSQL.
Entendo, eu também infelizmente não consegui, a solução alternativa que encontrei foi usar o WampServer mesmo. De quebra vem o PHPMyAdmin, pra montar as tabelas do banco de dados de forma vagabunda e preguiçosa kkkkkkkkk
public class Conexão {
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://127.0.0.1:3306/banco";
private static final String USER = "root";
private static final String PASS = "sql123";
public static Connection getConnection(){
try {
Class.forName(DRIVER);
return DriverManager.getConnection(URL, USER, PASS);
} catch (ClassNotFoundException | SQLException ex) {
throw new RuntimeException("Erro na conexão!", ex);
}
}
Dai, quando executo, aparece isso aqui na StackTrace:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Erro na conexão!
at DAO.Conexão.getConnection(Conexão.java:30)
at DAO.ContaDAO.create(ContaDAO.java:30) // Aqui eh onde é invocado o getConnection
Ou seja, ele executa o catch.
O usuario e a senha estão certos, assim como o Driver e tbm o URL do banco. To desconfiando que to meio que sem acesso ao banco. Tipo um “firewall” me barrando. Pq não consigo achar uma explicação.
Executa o MySQLInstanceConfig, e veja se todos os serviços estão instalados e rodando.
Quando perguntar o tipo de configuração escolha “Standard Configuration”.next
Reconfigura Instance next
Selecione a drop down “Include Bin Directory in windows path” next
Insira a senha atual e a nova (pode repetir) next e execute
Ele fará quatro testes se der erro, refaça o processo, só que em vez de reconfigurar remova a instancia, depois faça novamente reconfigurando e vai dar certo.
Baseado no que o povo falou acima mesmo kk e antes eu estava logando o MySQL antes de executar o programa no netbeans, dai eu executava com o DB ja logado la no MySQL. Ai fiz diferente! Eu executei o programa sem logar la no WorkBench e deixei ele msm fazer o login la no MySQL pelo ConnectionFactory, e resolveu. Mas recomendo testar também o que todos disseram acima.