MySQL : comment résoudre l'erreur Public Key Retrieval is not allowed ?

Lorsque vous développerez votre application, site internet ou logiciel avec le langage Java, vous aurez très probablement besoin d'une base de données. Le langage accepte la plupart des types de bases de données, par exemple MySQL. Si lors de votre connexion à la base de données, vous rencontrez le message d'erreur "Public Key Retrieval is not allowed", vous devez modifier vos paramètres de connexion.

Afin de pouvoir réussir la connexion, il est recommandé de modifier la configuration de la base de données. Si ce n'est pas possible, ou qu'il s'agit d'un développement et non d'une mise en production, vous pouvez autoriser les clés publiques. Cette modification rend cependant votre application vulnérable aux attaques de type "L'homme du milieu" (MITM). La modification se fait dans la chaîne de connexion de la classe "MySQLConnector". Si la connexion ne fonctionne pas après la modification, vous pouvez rajouter le paramètre supplémentaire "useSSL" avec la valeur "false". Cela désactivera l'utilisation du protocole SSL, facilitant la connexion à la base de données, mais vous rendant plus vulnérable aux attaques.

jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true&useSSL=false

Si vous êtes un utilisateur de la plateforme DBeaver et que vous avez le même type d'erreur, vous devez modifier les paramètres de votre connexion. Pour cela, dans les paramètres de la connexion, cliquez sur "Modifier les paramètres du pilote". Sélectionnez ensuite le menu "Propriétés de la connexion". Cliquez avec le bouton droit sur le texte "Propriétés de l'utilisateur" et choisissez l'option "Ajouter une nouvelle propriété". Créez alors les propriétés "AlloPublicKeyRetrieval" et "useSSL". Définissez leurs valeurs à "true" et "false" en double-cliquant ensuite sur la colonne "Valeur".

SQL