[JAVA] Erreur SQL [08001]: la solution de contournement pour la récupération de clé publique n'est pas autorisée [JDBC: MySQL]

Environnement local -Base de données: MySQL 8.0.16 ・ Langue: Java -Pilote JDBC: mysql-connector-java-8.0.16 -Outil de référence DB: DBeaver

Plusieurs erreurs se produisent lors de la tentative de connexion à DB

Lorsque j'ai essayé de me connecter à DB depuis Java, cela a soudainement cessé de fonctionner. La description d'erreur suivante se trouve sur la console Eclipse.

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet successfully received from the server was 25 milliseconds ago. 
The last packet sent successfully to the server was 28 milliseconds ago.

Lorsque j'essaie de me connecter à partir de DBeaver, la description d'erreur suivante s'affiche.

SQL Error [08001]: Public Key Retrieval is not allowed

J'ai cherché et vu l'article suivant et j'ai pu le résoudre. https://stackoverflow.com/questions/50379839/connection-java-mysql-public-key-retrieval-is-not-allowed

Définissez la propriété du pilote JDBC «allowPublicKeyRetrieval» sur true et «useSSL» sur false

DBeaver:

  1. Cliquez avec le bouton droit de la souris sur la connexion correspondante dans le "Navigateur de base de données" et appuyez sur "Modifier la connexion".
  2. Sélectionnez Paramètres de connexion> Propriétés du pilote.
  3. "allowPublicKeyRetrieval" a été remplacé par true.
  4. Remplacez "useSSL" par false. (Au fait, j'étais initialement faux, donc je n'avais pas besoin de m'en occuper.)
  5. Appuyez sur "OK".

Code Java:

  1. Ajout de "allowPublicKeyRetrieval = true & useSSL = false" à la chaîne de connexion à la base de données. <Exemple d'entrée>

sample.java


String database = "jdbc:mysql://localhost:3306/sample_db?allowPublicKeyRetrieval=true&useSSL=false";

Recommended Posts

Erreur SQL [08001]: la solution de contournement pour la récupération de clé publique n'est pas autorisée [JDBC: MySQL]
[Mysql2] Mysql2 :: Erreur: La clé spécifiée était trop longue; la longueur maximale de la clé est de 767 octets → Résolu en créant un nouveau fichier avec des restrictions de caractères
Erreur SQL [08001]: la solution de contournement pour la récupération de clé publique n'est pas autorisée [JDBC: MySQL]
"tx" n'est pas une erreur liée