Banco de Dados MySQL Workbench

Olá pessoal, sou iniciante, estou com problemas na conexão do banco de dados, ele apresenta uma mensagem de erro. Segue abaixo a mensagem. O banco é o MySQL Workbench. Desde já agradeço galera, valew!

TRADUZIDA => Sun décimo sétima janeiro 19:42:42 BRST 2016 WARN: Estabelecer 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 conformidade com as aplicações existentes não usando SSL a propriedade verifyServerCertificate está definido para ‘false’. Você precisa tanto explicitamente desative o SSL, definindo useSSL = false, ou definir useSSL = true e fornecer fidedigno para verificação do certificado do servidor.

parece ser so um warning, nao é um erro. poste em ingles no original pra gente ver.

Sun Jan 17 19:42:42 BRST 2016 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.

Posta o código que você está usando p/ se conectar.

Abs

Segue abaixo o código da classe de conexão

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
public class FabricaConexaoMySql {
	public static Connection criarConexao() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException{
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		String stringConexao = "jdbc:mysql://127.0.0.1/treinaweb_jse?user=root&password=1234";
		Connection connection = DriverManager.getConnection(stringConexao);
		return connection;		
	}
public static ResultSet executarSelect(Connection conn, String sql) throws SQLException{
	Statement query = conn.createStatement();
	return query.executeQuery(sql);
}
public static PreparedStatement criarPreparedStatement(Connection conn, String sql) throws SQLException{
	return conn.prepareStatement(sql);
}

}

Segue abaixo onde a classe é chamada. Obrigado por estar tentando ajudar!

package br.com.treinaweb.java.basico.app;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import br.com.treinaweb.java.basico.mysql.FabricaConexaoMySql;
public class Programa {

	public static void main(String[] args) {
	try {
		Connection connection = FabricaConexaoMySql.criarConexao();
		System.out.println("Conectado com sucesso!");
		PreparedStatement statement = FabricaConexaoMySql.criarPreparedStatement(connection,
				"INSERT INTO pessoas (nome, idade ) VALUES (?, ?)");
		statement.setString(1, "Cleusson");
		statement.setInt(2, 25);
		statement.execute();
		ResultSet rs = FabricaConexaoMySql.executarSelect(connection, "SELECT * FROM pessoas");
		System.out.println("PESSOAS NO BANCO DE DADOS");
		while(rs.next()){
			System.out.println(rs.getInt("id"));
			System.out.println(rs.getString("nome"));
			System.out.println(rs.getInt("idade"));
			System.out.println("********************");
		}
		System.out.println("Fim da leitura do banco de dados!");
	} catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

	}

}

Você tem 3 momentos em que são printados logs no console…

// 1
System.out.println("Conectado com sucesso!");
//2
System.out.println("PESSOAS NO BANCO DE DADOS");
//3
System.out.println("Fim da leitura do banco de dados!");

Esse erro/warning aparece no console antes ou depois de algum deles?

Outra coisa… você está abrindo Connection, PreparedStatement e ResultSet e em nenhum momento está fechando-os.

É importantissimo que depois de usar você libere esses recursos com o método close() de cada um.
Abs;

Olá, estou passando pelo mesmo problema, inclusive no curso do Treina Web também. Trata-se de um WARN (aviso), não é um erro mas gostaria de entender/resolver esse problema.

Tava com o mesmo problema.

Resolvi assim…

Troca isso:

String stringConexao = “jdbc:mysql://127.0.0.1/treinaweb_jse?user=root&password=1234”;
Connection connection = DriverManager.getConnection(stringConexao);

por isso:

String stringConexao = “jdbc:mysql://127.0.0.1/treinaweb_jse?autoReconnect=true&useSSL=false”;
Connection connection = DriverManager.getConnection(stringConexao, “root”, “1234”);

4 curtidas

Boa noite estava com mesmo problema, resolvi:(“jdbc:mysql://localhost/IniciandoComSpring?useSSL=false”, “user”,“senha”);

1 curtida

Olá.
Apareceu esse erro pra mim, to usando o Eclipse e o que devo fazer?

erro.
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.

Código que estou tentando rodar…
package br.com.drogaria.factory;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import org.apache.tomcat.dbcp.dbcp2.ConnectionFactory;

public class ConexaoFatory {
private static final String USUARIO = “root”;
private static final String SENHA = “123456”;
private static final String URL = “jdbc:mysql://localhost/3306/drogaria”;

public static Connection conectar() throws SQLException {
	Connection conexao = DriverManager.getConnection(URL, USUARIO, SENHA);
	return conexao;
}
public static void main(String[] args) {
	try{
	Connection conexao = ConexaoFatory.conectar();
	System.out.println("Conexão realizada com sucesso");
}catch(SQLException ex){
	System.out.println("Não foi possível realizar conexão");
}
}

}

Estou tendo o mesmo problema com o código abaixo, não resolveu, como podem me ajudar ? Sou iniciante em Java-Eclipse.

<?xml version="1.0" encoding="UTF-8"?> com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/livraria?UseSSL=false root root
	<!-- Pool de conexões JDBC (use the built-in) -->
	<property name="connection.pool_size">1</property>

	<!-- Habilita o gerenciamento aoutmático dos contextos de sessões do Hibernate -->
	<property name="current_session_context_class">thread</property>

	<!-- Mostra as SQL feitas pelo Hibernate no Console -->
	<property name="show_sql">true</property>

	<!-- Apaga e recria o banco ao iniciar a aplicação -->
	<property name="livraria">update</property>

</session-factory>

amigo ,tenta ( jdbc:mysql://localhost:3306/livraria?useSSL=false )
o lance do camelo é real.

2 curtidas

Essa mensagem não é um erro, apenas um warning de SSL, a conexão funciona normalmente mesmo aparecendo isso.

Muito obrigada, funcionou aqui

Valeu brother me ajudou muito

Alterei o trecho do código conforme sua orientação e o WARNING sumiu de vez! Abaixo segue a estrutura final do código para servir de exemplo para outros colegas.

jdbc:mysql://localhost:3306/livraria?useSSL=false

Eu imagino que se fizer o deploy do WAR no servidor do host, caso este seja verificado oficialmente, este aviso nem apareça e aí seria interessante ativar a camada SSL.

Funcionou perfeitamente.

Deu certo! Muito grato pela dica!

Acho que é preciso configurar um dialeto para o mysql, Mysql8Dialect.