Con las dos clases siguientes, he intentado conectarme a una base de datos MySQL. Sin embargo, siempre recibo este error:
Mié 09 de diciembre 22:46:52 CET 2015 ADVERTENCIA: No se recomienda establecer una conexión SSL sin la verificación de identidad del servidor. De acuerdo con los requisitos de MySQL 5.5.45+, 5.6.26+ y 5.7.6+, la conexión SSL debe establecerse de forma predeterminada si no se establece la opción explícita. Para cumplir con las aplicaciones existentes que no usan SSL, la propiedad generateServerCertificate se establece en 'falso'. Debe deshabilitar explícitamente SSL configurando useSSL = false, o bien useSSL = true y proporcionar un almacén de confianza para la verificación del certificado del servidor.
Esta es la clase de prueba con el main
método:
public class TestDatabase {
public static void main(String[] args) {
Database db = new Database();
try {
db.connect();
} catch (Exception e) {
e.printStackTrace();
}
db.close();
}
}
Esta es la Database
clase:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Database {
private Connection con;
public void connect() throws Exception{
if(con != null) return;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new Exception("No database");
}
String connectionURL = "jdbc:mysql://localhost:3306/Peoples";
con = DriverManager.getConnection(connectionURL, "root", "milos23");
}
public void close(){
if(con != null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
java
ssl
database-connection
mysql-error-1064
Milos86
fuente
fuente
Respuestas:
Su URL de conexión debe verse como la siguiente,
Esto deshabilitará SSL y también suprimirá los errores de SSL.
fuente
jdbc:mysql://localhost:3306/Peoples?autoReconnect=true&useSSL=false
usé & amp; en lugar de &¿Qué tal usar SSL pero desactivar la verificación del servidor (como cuando está en modo de desarrollo en su propia computadora):
fuente
Mencione lo siguiente
url
:Pero en la configuración xml cuando menciona el
&
signo, el IDE muestra el siguiente error:Y entonces usted tiene que utilizar explícitamente el
&
lugar de&
que se determine como&
porxml
después de eso enxml
lo que tiene que dar la dirección URL en la configuración de XML como esto:fuente
Un método alternativo sería:
fuente
También encontré esta advertencia y luego la arreglé usando SSL = sufijo falso en la cadena de conexión como este código de ejemplo.
Ejemplo:
fuente
Los valores predeterminados para iniciar una conexión a un servidor MySQL se cambiaron en el pasado reciente y (desde un vistazo rápido a través de las preguntas y respuestas más populares sobre el desbordamiento de la pila) los nuevos valores están causando mucha confusión. Lo que es peor es que el consejo estándar parece ser desactivar SSL por completo, lo cual es un desastre en ciernes.
Ahora, si su conexión no está realmente expuesta a la red (solo localhost) o está trabajando en un entorno que no es de producción sin datos reales, entonces seguro: no hay ningún daño en deshabilitar SSL al incluir la opción
useSSL=false
.Para todos los demás, se requiere el siguiente conjunto de opciones para que SSL funcione con el certificado y la verificación del host:
Como una ventaja adicional, ya que ya estás jugando con las opciones, también es simple deshabilitar los protocolos SSL débiles:
Ejemplo
Entonces, como ejemplo de trabajo, deberá seguir los siguientes pasos generales:
Primero, asegúrese de tener un certificado válido generado para el host del servidor MySQL y de que el certificado de CA esté instalado en el host del cliente (si está utilizando la firma propia, es probable que deba hacerlo manualmente, pero para CA públicas populares ya estarán allí).
A continuación, asegúrese de que el almacén de claves de Java contenga todos los certificados de CA. En Debian / Ubuntu esto se logra ejecutando:
Luego, finalmente, actualice la cadena de conexión para incluir todas las opciones requeridas, que en Debian / Ubuntu sería algo similar (adaptar según sea necesario):
Referencia: https://beansandanicechianti.blogspot.com/2019/11/mysql-ssl-configuration.html
fuente
necesita usar su ruta mysql de esta manera:
fuente
Esto estuvo bien para mí:
fuente
Use esto para resolver el problema en la colmena mientras se conecta con MySQL
fuente
jdbc:mysql://localhost/metastore?useSSL=false&createDatabaseIfNotExist=true
. Sin el y funciona bien.Yo uso esta propiedad para hibernar en config xml
sin - serverTimezone = UTC - no funciona
fuente
Solución Para solucionarlo, agregue useSSL = false al final de la cadena de conexión MySQL:
ex.
application.properties
fuente de datos mysql
fuente
las nuevas versiones de mysql-connector establecen la conexión SSL por defecto ... para resolverlo:
Descargue la versión anterior de mysql-connector como mysql-connector-java-5.0.8.zip
. . o . Descarga OpenSSL para Windows y sigue las instrucciones sobre cómo configurarlo
fuente
Como actualmente estoy en modo de desarrollo, configuro useSSL en No, no en tomcat sino en configuraciones de servidor mysql. Fui a administrar la configuración de acceso \ Administrar conexiones del servidor desde el banco de trabajo -> Seleccioné mi conexión. La pestaña de conexión interna fue a la pestaña SSL y deshabilitó la configuración. Trabajó para mi.
fuente