Optimisé les performances des configurations rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries et sslMode de Java JDBC.
Documentation de toutes les propriétés de configuration jdbc :La connexion hyperlientérée est visible.
Révision:
allowRecouvrementClé Publique
Lorsque vous utilisez MySQL 8.0, après redémarrage de l’application, vous êtes invité à com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException : La récupération de clé publique n’est pas autorisée
La solution la plus simple est de l’ajouter après la connexionallowPublicKeyRetrieval=true
Si l’utilisateur utilise sha256_password authentification, le mot de passe doit être protégé en transit selon le protocole TLS, mais si la clé publique RSA n’est pas disponible, la clé publique fournie par le serveur peut être utilisée ; La clé publique RSA du serveur peut être spécifiée dans la connexion via ServerRSAPublicKeyFile, ou le paramètre AllowPublicKeyRetrieval=True pour permettre au client d’obtenir la clé publique du serveur ; Cependant, il convient de noter qu’AllowPublicKeyRetrieval=True peut amener des agents malveillants à obtenir des mots de passe en clair via des attaques man-in-the-middle (MITM), il est donc désactivé par défaut et doit être explicitement activé.
rewriteBatchedStatements
Afin d’obtenir une insertion batch haute performance en ajoutant le paramètre rewriteBatchedStatements à l’URL de la connexion JDBC dans MySQL et en garantissant que la version 5.1.13 ou ultérieure du pilote est garantie. Par défaut, le pilote JDBC MySQL ignore l’instruction exécuteBatch(), divise un ensemble d’instructions SQL que nous espérons exécuter par lots, et les envoie une par une à la base de données MySQL. Ce n’est qu’en mettant le paramètre rewriteBatchedStatements sur true que le pilote exécutera le SQL par lots Cette option est également valable pour INSÉRER/METTRE À JOUR/SUPPRIMER
Par défaut, le pilote MySQL Jdbc ignore l’instruction executeBatch(), décompose un ensemble d’instructions SQL que nous attendons à exécuter par lots, et les envoie une par une à la base MySQL, ce qui entraîne directement une faible performance.
Ce n’est qu’en mettant le paramètre rewriteBatchedStatements sur true que le pilote vous aidera à exécuter SQL en bloc (jdbc :mysql ://ip :port/db ?)rewriteBatchedStatements=true)
allowMultiQueries
Permission d’utiliser » ; « Sépare plusieurs requêtes (vrai/faux) dans une seule phrase. La valeur par défaut est « false », ce qui n’affecte pas les méthodes addBatch() et exécuteBatch(), qui dépendent de rewriteBatchStatements.
Lorsque MySQL se connecte à une base de données, ajoutez la déclaration : »allowMultiQueries=trueLe rôle de « :
1. Vous pouvez porter un point-virgule après l’instruction SQL pour réaliser une exécution multi-instructions. 2. Le traitement par lots peut être effectué et plusieurs instructions SQL peuvent être émises simultanément.
sslMode
Par défaut, les connexions réseau sont chiffrées SSL ; Cette propriété vous permet de désactiver la connexion sécurisée ou de sélectionner un autre niveau de sécurité. Les valeurs suivantes sont autorisées : « DÉSACTIVÉ » - une connexion non chiffrée est établie ; « PRÉFÉRÉ » - (par défaut) Si le serveur active des connexions chiffrées, une connexion chiffrée est établie, sinon elle revient à une connexion non chiffrée ; « OBLIGATOIRE » - Établir une connexion sécurisée si le serveur l’a activée, sinon cela échoue ; « VERIFY_CA » - Similaire à « REQUIRED », mais qui valide en plus le certificat TLS du serveur par rapport au certificat d’autorité de certification (CA) configuré ; « VERIFY_IDENTITY » – comme « VERIFY_CA »,
Cet attribut remplace les anciens attributs obsolètes « useSSL », « requireSSL » et « verifyServerCertificate », qui sont toujours acceptés mais convertis en la valeur de « sslMode » si « sslMode » n’est pas explicitement défini : « useSSL=false » est converti en « sslMode=disabled » ; {"useSSL=true », « requireSSL=false », « verifyServerCertificate=false"} se traduit par « sslMode=PREFERRED « ; {"useSSL=true », « requireSSL=true », « verifyServerCertificate=false"} se traduit par « sslMode=REQUIRED » ; {"useSSL=true » ET « verifyServerCertificate=true"} se traduit par « Le paramètre par défaut pour « sslMode » est « PREFERRED » », ce qui équivaut aux paramètres traditionnels « useSSL=true », « requireSSL=false » et « verifyServerCertificate=false », qui est le même que le Connector/ Les paramètres par défaut pour J 8.0.12 et les versions antérieures diffèrent dans certains cas. Les applications qui continuent d’utiliser les anciens attributs et s’appuient sur leurs anciens paramètres par défaut doivent être examinées. Le paramètre par défaut pour « sslMode » est « PREFERRED », qui est équivalent aux réglages traditionnels « useSSL=true », « requireSSL=false » et « verifyServerCertificate=false », ce qui diffère parfois du paramètre par défaut pour Connector/ J 8.0.12 et versions antérieures. Les applications qui continuent d’utiliser les anciens attributs et s’appuient sur leurs anciens paramètres par défaut doivent être examinées. Dans certains cas, c’est 12 ans ou plus tôt. Les applications qui continuent d’utiliser les anciens attributs et s’appuient sur leurs anciens paramètres par défaut doivent être examinées. Dans certains cas, c’est 12 ans ou plus tôt. Les applications qui continuent d’utiliser les anciens attributs et s’appuient sur leurs anciens paramètres par défaut doivent être examinées.
Si « sslMode » est explicitement défini, l’ancienne propriété est ignorée. Si « sslMode » ou « useSSL » n’est pas explicitement défini, le paramètre par défaut « sslMode=PREFERRED » est appliqué.
Paramètres JDBC pour désactiver les connexions sécurisées :sslmode=désactivé
|