MySQL Public Key Retrieval is not allowed
Asked by Thu Yein Tun:

My db server is mysql 8.0.11 and driver version 5.1.46.

When ssl is enabled, and tries to connect to the database, confluence setup reports the following.

**Problem connecting to your database**

```
SQLState - S1000
java.sql.SQLException: Illegal operation on empty result set.
```

But if "skip_ssl" is written to my.cnf and restarted mysql, then it shows the following error message.

**Problem connecting to your database**

```
SQLState - 08001
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed

```

Below is the output of logs/catalina.out

```
20-Apr-2018 14:35:35.680 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 6392 ms
Fri Apr 20 14:37:39 SGT 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
```

I also tried with the following connection string to disable verification and ssl

```
jdbc:mysql://localhost/confluencedb?verifyServerCertificate?=false&useSSL=false?
```


Answers:
author: Thu Yein Tun
body: For prosperity purposes, this has been solved by downgrading mysql 8.0 to mysql 5.7.22. Confluence documentation should state that it is not compatible with mysql 8.0.

comments: author: Nic Brough -Adaptavist-
body: It does. See <https://confluence.atlassian.com/doc/supported-platforms-207488198.html>


author: Mohamid Shaker
body: .


author: Mohamid Shaker
body: Hi Thanks for your answer. I had have same problem so the solution that's worked for me it's by deleting useSSL= false at all.

Maybe because i dont ssl file at all in my computer !!


author: PhoodeeApp
body: i am suing DBeaver for database connection. where should i enable this ?


author: Nic Brough -Adaptavist-
body: We probably can't tell you - this is a place for Atlassian people, only a few of us might have experience with Dbeaver.


author: Andre Tzermias
body: [@PhoodeeApp](/t5/user/viewprofilepage/user-id/2878956)

To change the settings on Dbeaver:

1) Right click your connection, choose "Edit Connection"

2) On the "Connection settings" screen (main screen) click on "Edit Driver Settings"

![2019-04-09 16_36_09 - Screenshot.png](https://community.atlassian.com/t5/image/serverpage/image-id/51053i4B5504479127FE75/image-size/large?v=v2&px=999 "2019-04-09 16_36_09 - Screenshot.png")

3) Click on "Connection properties"

4) Right click the "user properties" area and choose "Add new property"

5) Add two properties: "useSSL" and "allowPublicKeyRetrieval"

6) Set their values to "false" and "true" by double clicking on the "value" column

![2019-04-09 16_36_22 - Screenshot.png](https://community.atlassian.com/t5/image/serverpage/image-id/51054iF897D22E6766643F/image-size/large?v=v2&px=999 "2019-04-09 16_36_22 - Screenshot.png")

Save and re-test the connection. Hopefully it should work!


author: Pierre Silva
body: Nice...


author: abitencourtjunior
body: This worked for me, thanks.


author: Marco Vargas
body: Great work [@Andre Tzermias](/t5/user/viewprofilepage/user-id/3010433) , it worked great for me.


author: Israel Araujo
body: Obrigado [@Andre Tzermias](/t5/user/viewprofilepage/user-id/3010433) , funcionou perfeitamente para mim.


author: Julien FENEROL
body: It works! Thanks a lot :)


author: sparten117
body: That worked for me Thank You


author: pgavilan
body: THANKS!!! GRACIAS!!!


author: ahenteti
body: Thanks [@Andre Tzermias](/t5/user/viewprofilepage/user-id/3010433) it works great for me :)


author: Juan Carlos Ramos
body: It works! Thanks a lot!!


author: vedprakash1985
body: It works !!thanks


author: Felipe Sartori
body: Worked for me!


author: Jesman Dzimba
body: Super grateful


author: Claudio Barca
body: This worked for me. Thanks.


author: Amit Luthra
body: Thanks! it worked for dbeaver


author: Spice Jamo
body: thanks it works great!!


author: Alejandro Campos
body: Thanks a lot! its works in DBeaver v21.0.3


author: luigi.izzo
body: Worked for me!


author: RuiFortes
body: Same here! Thanks :-)


author: Santiago VB
body: Works! Wonderful.


author: amanda91
body: Thanks, worked for me!


author: Raul H_ Lapitzondo
body: This worked, thanks.


author: chethan bv
body: ```
jdbc:mysql://localhost/confluencedb?allowPublicKeyRetrieval=true&useSSL=false?
```

use this

comments: author: aajjss3
body: This worked for me, thanks.


author: xZHARKONx
body: Hola que tal, a mi me a funcionado tu configuraci?n para mi pool de conexiones, en Mysql 8.0 Corriendo en Glassfish 5 :D  
Gracias, Saludos.  

Hi, this my configuration, i worked in Mysql 0.8 with Glassfish 5 Server, Thanks :D  
Diver:  

\<dependency\>  
\<groupId\>mysql\</groupId\>  
\<artifactId\>mysql-connector-java\</artifactId\>  
\<version\>5.1.46\</version\>  
\</dependency\>  

![PoolDeConexiones-GlassfishServer.png](https://community.atlassian.com/t5/image/serverpage/image-id/32903i07D345B54730F167/image-size/large?v=v2&px=999 "PoolDeConexiones-GlassfishServer.png")![PoolDeConexiones-GlassfishServerPing.png](https://community.atlassian.com/t5/image/serverpage/image-id/32902iA50C2F99F2815C77/image-size/large?v=v2&px=999 "PoolDeConexiones-GlassfishServerPing.png")


author: Josep Llort Tella
body: I think the issue is because you have followed the MySQL installation wizard and you have setup the "Use Strong password encription" option what now comes by default rather "Legacy authentication". If you are on Windows, you can execute the installer, click on reconfigure , follow the wizard and switch to Legacy.

Another solution is to fight with SSL Authentication ( not trivial ); below some url:

<https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-using-ssl.html>

<https://dev.mysql.com/doc/refman/5.7/en/creating-ssl-rsa-files-using-mysql.html>

Also be sure you are using the latest driver for working with MySQL 8. If you at the end disable SSL, remove from your query connection the "verifyServerCertificate=false\&useSSL=false" or you will get another errors ( yes it's a jigsaw ).

comments: author: Dp H
body: This worked. Thanks so much!..   

If you change the password encryption from "Use Strong password encryption" to "Use legacy password encryption" to be compatible with MySQL 5.x connectors this will be solved.  

On Mac, go to System Preferences -\> MySQL -\> Initialize Database to change this setting.


author: dilli lekhak
body: Hi, I am using macOS Catalina, Version 10.15.5, and faced the same error in my eclipse console while running my application. I had upgraded to MySQL 8.0.20 on the same day after facing some issues with homebrew. After going over the above comments and suggestions, I solved it by adding the following in my application properties:

spring.datasource.url=jdbc:mysql://localhost:3306/myDatabase?**allowPublicKeyRetrieval=true**

Thanking for your feedback.


Tags: mysql