Connexion Java - MySQL : résolution de l'exception « La récupération de clé publique n'est pas autorisée »
Lors de la tentative d'établissement d'une connexion à une base de données MySQL à l'aide Java et le connecteur 8.0.11, les utilisateurs peuvent rencontrer l'exception suivante :
<code class="java">Exception in thread "main" java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed</code>
Solution :
Cette exception indique que le client tente de récupérer le public clé du serveur, mais la récupération de la clé publique n'est pas autorisée. Pour résoudre ce problème, nous devons autoriser explicitement la récupération de clé publique en ajoutant l'option allowPublicKeyRetrieval=true à la chaîne de connexion MySQL.
Classe de gestionnaire de connexion modifiée :
<code class="java">public static Connection getConnection() throws SQLException { MysqlDataSource dataSource = new MysqlDataSource(); dataSource.setUseSSL( false ); dataSource.setServerTimezone( serverTimeZone ); dataSource.setServerName( serverName ); dataSource.setDatabaseName( databaseName ); dataSource.setPortNumber( portNumber ); dataSource.setUser( user ); dataSource.setPassword( password ); // Allow public key retrieval dataSource.setAllowPublicKeyRetrieval( true ); return dataSource.getConnection(); }</code>
En définissant AllowPublicKeyRetrieval sur true, le client est autorisé à demander la clé publique au serveur. Cela résout l'exception « La récupération de clé publique n'est pas autorisée ».
Considérations supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!