在使用 MySQL 8.0 時重新開機應用後提示 <code>com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed</code>
最簡單的解決方法是在連接配接後面添加 <code>allowPublicKeyRetrieval=true</code>

文檔中(https://mysql-net.github.io/MySqlConnector/connection-options/)給出的解釋是:
如果使用者使用了 <code>sha256_password</code> 認證,密碼在傳輸過程中必須使用 TLS 協定保護,但是如果 RSA 公鑰不可用,可以使用伺服器提供的公鑰;可以在連接配接中通過 <code>ServerRSAPublicKeyFile</code> 指定伺服器的 RSA 公鑰,或者<code>AllowPublicKeyRetrieval=True</code>參數以允許用戶端從伺服器擷取公鑰;但是需要注意的是 <code>AllowPublicKeyRetrieval=True</code>可能會導緻惡意的代理通過中間人攻擊(MITM)擷取到明文密碼,是以預設是關閉的,必須顯式開啟
好學若饑,謙卑若愚