Erro na conexão com o banco de dados

Galera alguém já passou por esse erro:

java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password’.

Parece ser um erro de autenticação no login do banco; mas não faço ideia de como resolver;

Alguém sabe dizer o que está acontecendo? E como posso resolver?

Poste o código (e correlatos) onde a exceção foi lançada para avaliarmos. De qualquer forma, já existe um post aqui no fórum tratando do assunto. Sugiro que dê uma espiada por aqui: Não consigo conectar o Java ao MySQL.

código:

public class CargosInserir extends JPanel {
JLabel labelTitulo, labelCargo;
JTextField campoCargo;
JButton botaoGravar;

public CargosInserir() {
    criarComponentes();
    criarEventos();
    
}

private void criarComponentes() {
    setLayout (null);
    
    labelTitulo = new JLabel("Cadastro de cargo" + JLabel.CENTER);
    labelTitulo.setFont(new Font(labelTitulo.getFont().getName(), Font.PLAIN, 20));
    labelCargo = new JLabel("Nome do cargo" + JLabel.LEFT);
    campoCargo = new JTextField();
    botaoGravar = new JButton("Adicionar Cargo");
    
    labelTitulo.setBounds(20, 20, 660, 40);
    labelCargo.setBounds(150, 120, 400, 20);
    campoCargo.setBounds(150, 140, 400, 40);
    botaoGravar.setBounds(250, 380, 200, 40);
    
    add(labelTitulo);
    add(labelCargo);
    add(campoCargo);
    add(botaoGravar);
    
    setVisible(true);
}

private void criarEventos() {
    botaoGravar.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent ae) {
            Cargos novoCargo = new Cargos();
            novoCargo.setNome(campoCargo.getText());

            sqlInserirCargo(novoCargo);
        }
    });
}

private void sqlInserirCargo(Cargos novoCargo){
    if(campoCargo.getText().length() <=3){
        JOptionPane.showMessageDialog(null, "Por favor, preencha o nome corretamente!");
    }
    
    Connection conexao;
    Statement instrucaoSQL;
    ResultSet resultados;
    
    try {
        conexao = DriverManager.getConnection(BancoDeDados.URL, BancoDeDados.USER, BancoDeDados.PASS);
        instrucaoSQL = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
        instrucaoSQL.executeUpdate("insert into cargos (nome) values ('" + novoCargo.getNome()+ "');");
        JOptionPane.showMessageDialog(null, "Cargo adicionado com sucesso!");
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Ocorreu um erro ao adicionar o Cargo.");
        Logger.getLogger(CargosInserir.class.getName()).log(Level.SEVERE, null, ex);
    }
}

retorno na saída:
run:
mai 23, 2020 10:39:00 PM sistema.telas.CargosInserir sqlInserirCargo
GRAVE: null
java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password’.

Está usando o MySQL 8? Qual o driver? Instalou o conector correto?

Isso MySQL Workbench 8.0.
Driver é o próprio do MySQL baixado pela biblioteca.
se é o correto do Mysql 8 não sei.
java 5.1.23-bin;

O conector java do JDBC, qual está usando? Tem indicar o jar na IDE. o Conector do MySQL 8 é esse: mysql-connector-java-8.0.20. O driver deverá ser esse: com.mysql.cj.jdbc.Driver

mysql - connector - java - 5.1.23-bin… esse esta no driver junto da biblioteca!

Esse é do MySQL 5. Exemplo:

public class ConectaBancoDeDados {
    private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost/"
            + "DataBase?useTimezone=true&serverTimezone=UTC";
    private static final String USUARIO = "user";
    private static final String SENHA = "password";
   
    public static Connection getConexao() throws SQLException{
        try{
            Class.forName(DRIVER);
                return DriverManager.getConnection(URL, USUARIO, SENHA);
        }catch(ClassNotFoundException cnfe){
            throw new SQLDataException(cnfe.getMessage());
        }
    }
    
    public static void main(String[] args){
        try{
            getConexao();
            System.out.println("Banco de dados conectado com sucesso!");
        }catch(SQLException sqle){
            System.out.println("Impossível se conectar ao banco de dados. "
                    + "ERRO: " + sqle.getMessage());
        }
    }
} 

No NetBeans, por exemplo:

image

Ixi… então se trocar resolve o problema?

Obrigado vou testar hoje subistiruindo pelo for…name tbm!

Deu certo era esse detalhe : ?useTimezone=true&serverTimezone=UTC"

Obrigado pela ajuda!