Avec les deux classes ci-dessous, j'ai essayé de me connecter à une base de données MySQL. Cependant, j'obtiens toujours cette erreur:
Wed Dec 09 22:46:52 CET 2015 AVERTISSEMENT: L'établissement d'une connexion SSL sans vérification d'identité du serveur n'est pas recommandé. Selon MySQL 5.5.45+, 5.6.26+ et 5.7.6+, la connexion SSL doit être établie par défaut si l'option explicite n'est pas définie. Pour la conformité avec les applications existantes n'utilisant pas SSL, la propriété verifyServerCertificate est définie sur «false». Vous devez soit désactiver explicitement SSL en définissant useSSL = false, soit définir useSSL = true et fournir un fichier de clés certifiées pour la vérification du certificat du serveur.
C'est la classe de test avec la main
méthode:
public class TestDatabase {
public static void main(String[] args) {
Database db = new Database();
try {
db.connect();
} catch (Exception e) {
e.printStackTrace();
}
db.close();
}
}
Voici la Database
classe:
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();
}
}
}
}
Réponses:
L'URL de votre connexion doit ressembler à ce qui suit,
Cela désactivera SSL et supprimera également les erreurs SSL.
la source
jdbc:mysql://localhost:3306/Peoples?autoReconnect=true&useSSL=false
j'ai utilisé & amp; au lieu de &Que diriez-vous d'utiliser SSL mais de désactiver la vérification du serveur (comme en mode de développement sur votre propre ordinateur):
la source
Mentionnez les
url
similaires:Mais dans la configuration xml lorsque vous mentionnez
&
signe, l'IDE affiche l'erreur ci-dessous:Et puis vous devez utiliser explicitement le
&
au lieu d'&
être déterminé comme&
par laxml
suite dansxml
vous devez donner l'url dans la configuration xml comme ceci:la source
Une autre méthode serait:
la source
J'ai également trouvé cet avertissement, puis je l'ai corrigé en utilisant SSL = faux suffixe à la chaîne de connexion comme cet exemple de code.
Exemple:
la source
Les valeurs par défaut pour établir une connexion à un serveur MySQL ont été modifiées récemment et (d'un rapide coup d'œil aux questions et réponses les plus populaires sur le débordement de pile), les nouvelles valeurs causent beaucoup de confusion. Le pire est que le conseil standard semble être de désactiver complètement SSL, ce qui est un peu désastreux.
Maintenant, si votre connexion n'est vraiment pas exposée au réseau (localhost uniquement) ou si vous travaillez dans un environnement de non-production sans données réelles, alors assurez-vous: il n'y a aucun mal à désactiver SSL en incluant l'option
useSSL=false
.Pour tout le monde, les options suivantes sont requises pour que SSL fonctionne avec la vérification des certificats et des hôtes:
En prime, vu que vous jouez déjà avec les options, il est également simple de désactiver les protocoles SSL faibles:
Exemple
Donc, comme exemple de travail, vous devrez suivre les grandes étapes suivantes:
Tout d'abord, assurez-vous que vous disposez d'un certificat valide généré pour l'hôte du serveur MySQL et que le certificat CA est installé sur l'hôte client (si vous utilisez l'auto-signature, vous devrez probablement le faire manuellement, mais pour le CA publiques populaires, il sera déjà là).
Ensuite, assurez-vous que le magasin de clés java contient tous les certificats CA. Sur Debian / Ubuntu, ceci est réalisé en exécutant:
Enfin, mettez à jour la chaîne de connexion pour inclure toutes les options requises, ce qui, sur Debian / Ubuntu, ressemblerait un peu à (adapter selon les besoins):
Référence: https://beansandanicechianti.blogspot.com/2019/11/mysql-ssl-configuration.html
la source
vous devez utiliser votre chemin mysql comme ceci:
la source
C'était bien pour moi:
la source
Utilisez ceci pour résoudre le problème dans la ruche tout en établissant une connexion avec MySQL
la source
jdbc:mysql://localhost/metastore?useSSL=false&createDatabaseIfNotExist=true
. Sans le et cela fonctionne bien.J'utilise cette propriété pour hibernate dans config xml
sans - serverTimezone = UTC - cela ne fonctionne pas
la source
Solution Pour y remédier, ajoutez un useSSL = false à la fin de la chaîne de connexion MySQL:
ex.
application.properties
source de données mysql
la source
les nouvelles versions de mysql-connector établissent une connexion SSL par défaut ... pour le résoudre:
Téléchargez l'ancienne version de mysql-connector telle que mysql-connector-java-5.0.8.zip
. . ou . . Téléchargez OpenSSL pour Windows et suivez les instructions pour le configurer
la source
Étant donné que je suis actuellement en mode développement, j'ai défini useSSL sur Non pas dans tomcat mais dans les configurations de serveur mysql. Je suis allé gérer les paramètres d'accès \ Gérer les connexions au serveur à partir du plan de travail -> J'ai sélectionné ma connexion. L'onglet de connexion interne est allé à l'onglet SSL et a désactivé les paramètres. A travaillé pour moi.
la source