Estou rodando um aplicativo que estou criando para praticar do meu estudo, e quando clico no item de menu cadastrar grupo ele aparece este aviso:
WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
ja tentou traduzir no google tradutor para ver se entende?
ja testou sua conexao com o banco de dados?
Coloquei no google tradutor mais nao entendi muito bem.
WARN: Estabelecimento de uma conexão SSL, sem verificação de identidade do servidor não é recomendado. De acordo com MySQL 5.5.45+, 5.6.26+ e 5.7.6+ requisitos conexão SSL deve ser estabelecida por padrão se a opção explícita não está definido. Para estar em conformidade com as aplicações existentes não usando SSL a propriedade verifyServerCertificate é definido como ‘false’. Você precisa tanto explicitamente desative o SSL, definindo useSSL = false, ou conjunto useSSL = true e fornecer fidedigno para verificação do certificado do servidor.
Posta a sua classe de conexão.
Pode ser algo na url do banco de dados.
Posta aqui pra gente.
E outra, fez o teste pra ver se sua conexão está funcionando?
Segue a classe de conexao.
public class BD {
public Connection connection = null;
private final String DRIVER = “com.mysql.jdbc.Driver”;
private final String DBNAME = “db_estoki”;
private final String URL = “jdbc:mysql://localhost:3306/INttech?useSSL=false”+DBNAME;
private final String LOGIN = “root”;
private final String SENHA = “mit071029”;
/* metodo que faz conexao com o banco de dados
* retorna true se houve sucesso, ou false em caso negativo
*/
public boolean geteConnection(){
try{
Class.forName(DRIVER);
connection = DriverManager.getConnection(URL, LOGIN, SENHA);
System.out.println("Conectou");
return false;
}
catch(ClassNotFoundException erro){
System.out.println("Driver nao encontrado " +erro.toString());
return false;
}
catch(SQLException erro){
System.out.println("Falha ao conectar "+ erro.toString());
return false;
}
}
public void close(){
try{
connection.close();
System.out.println("Desconectou");
}
catch(SQLException erro){
}
}
}
perdao eu ja tinha feito uma alteracao o aviso aparece quando na constante String URL esta assim:
“jdbc:mysql://localhost:3306/”+DBNAME;
Você tem 2 catch dentro de um try? ‘-’
A url correta é: “jdbc:mysql://localhost:3306/nomebanco”;
Ou tentar isso: “jdbc:mysql://localhost:3306/nomebanco?useSSL=false”
sao 2 catch um para retorna caso o drive nao seja encontrado e o outro para falha ao conectar com o banco, ja o nome do banco esta na constante DBNAME que esta na url como voce verifica em baixo…
fiz a alteracao na url agora ele apresentou falha na conexao.
public class BD {
public Connection connection = null;
private final String DRIVER = “com.mysql.jdbc.Driver”;
private final String DBNAME = “db_estoki”;
private final String URL = “jdbc:mysql://localhost:3306/”+DBNAME+"?useSSL=false";
private final String LOGIN = “root”;
private final String SENHA = “mit071029”;
/* metodo que faz conexao com o banco de dados
* retorna true se houve sucesso, ou false em caso negativo
*/
public boolean geteConnection(){
try{
Class.forName(DRIVER);
connection = DriverManager.getConnection(URL, LOGIN, SENHA);
System.out.println("Conectou");
return false;
}
catch(ClassNotFoundException erro){
System.out.println("Driver nao encontrado " +erro.toString());
return false;
}
catch(SQLException erro){
System.out.println("Falha ao conectar "+ erro.toString());
return false;
}
}
public void close(){
try{
connection.close();
System.out.println("Desconectou");
}
catch(SQLException erro){
}
}
}
Tenta isso agora: "jdbc:mysql://localhost/seubancoaqui?autoReconnect=true&useSSL=false;
Tenta aí.
no geteConnection(), quando a conexão for true (vcê está até printando Conectou na tela mas esta retornando false), porque?
O printe conectou e porque eu aprendi assim, por isso coloco…
tentei com o que voce me passou mas retorna falha na conexao.
segue o codigo como fico.
import java.sql.*;
import javax.swing.JOptionPane;
/**
*
-
@author Moises
*/
public class BD {
public Connection connection = null;
private final String DRIVER = “com.mysql.jdbc.Driver”;
private final String DBNAME = “db_estoki”;
private final String URL = “jdbc:mysql://localhost:3306/”+DBNAME+"?autoReconnect=true&useSSL=false";
private final String LOGIN = “root”;
private final String SENHA = “mit071029”;/* metodo que faz conexao com o banco de dados
-
retorna true se houve sucesso, ou false em caso negativo
*/
public boolean geteConnection(){
try{
Class.forName(DRIVER);
connection = DriverManager.getConnection(URL, LOGIN, SENHA);
// System.out.println(“Conectou”);
return false;
}
catch(ClassNotFoundException erro){
System.out.println("Driver nao encontrado " +erro.toString());
return false;
}
catch(SQLException erro){
System.out.println("Falha ao conectar "+ erro.toString());
return false;
}
}
public void close(){
try{
connection.close();
System.out.println(“Desconectou”);
}
catch(SQLException erro){}
}
}
-
Sim, você pode deixar ele printando na tela, não tem problema, meu post anterior é ligado ao seu return false a onde era pra ser return connection;
Deu certo, consegui conectar no banco e fazer o insert.
Sempre que tiver dentro do meu entendimento, tamo aqui jovem!
Abraço!