Também estou com o mesmo problema. Tenho duas classes diferentes: TestaConexão e TestaListagem.
Código de TestaConexão:
package loja_virtual_repository;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class TestaConexao {
public static void main(String[] args) throws SQLException {
Connection connection = DriverManager
.getConnection("jdbc:mysql://localhost/loja_virtual?useTimeZone=true&serverTimezone=UTC", "root", "root");
System.out.println("Fechando conexão!!");
connection.close();
}
}
Código de TestaListagem:
package loja_virtual_repository;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class TestaListagem {
public static void main(String[] args) throws SQLException {
Connection connection = DriverManager
.getConnection("jdbc:mysql://localhost/?useTimeZone=true&serverTimezone=UTC&user=root&password=root");
Statement stm = connection.createStatement();
boolean resultado = stm.execute("SELECT ID, NOME, DESCRICAO FROM PRODUTO");
System.out.println(resultado);
connection.close();
}
}
Fiz um CTRL + C, CTRL + V no código de obter a conexão da primeira classe para a segunda classe.
Configurações do ambiente:
Windows 10 x64;
Versão do Java: 13.0.2
MySql Community 8.0.21
Driver para conexão: mysql-conenctor-java-8.0.21.jar (estava utilizando o que estava disponibilizado nas aulas, mas como estava dando o erro acabei trocando para essa versão para ver se corrigia, porém o erro persiste).
Na primeira classe o código executa normalmente com sucesso. Já na segunda classe está estourando o mesmo erro do amigo aí em cima:
Exception in thread "main" java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:251)
at com.mysql.cj.jdbc.admin.TimezoneDump.main(TimezoneDump.java:70)
E o mais interessante é que aqui em casa possuo um notebook e um computador, e o mesmo erro ocorre nas duas máquinas diferentes.
Experimentei também criar um novo usuário no MySql para ver se conseguia trabalhar nele, porém, sem sucesso também.