IDEAjava.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
时间: 2024-09-25 13:11:53 浏览: 163
当你在 IntelliJ IDEA 中遇到 `java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed` 这样的错误,通常意味着在尝试从远程服务器获取数据库连接时,IDEA的安全设置不允许自动下载并信任服务器的公钥用于加密通信。
这个问题通常是由于Java Secure Socket Extension (JSSE) 或者 SSL/TLS 配置导致的,因为 IntelliJ 需要验证服务器证书以建立安全的连接。解决这个问题可以按照以下步骤操作:
1. **临时禁用证书检查**:
- 打开 IntelliJ,点击右上角的 IntelliJ IDEA 菜单 > Preferences (Mac) / Settings (Windows) > Build, Execution, Deployment > Database。
- 在 "Trust" 选项卡下,取消选中 "Check client certificate Revocation List (CRL)" 和 "Check server certificate chain and host name".
- 点击 Apply 和 OK 保存设置,然后重启 IDE 试试看是否能连接。
2. **永久修改安全设置**:
- 如果你可以信任该服务器,可以在系统级设置里允许自动下载证书:
- Linux/MacOS: 可能需要编辑 `JAVA_HOME/lib/security/cacerts` 文件,手动添加服务器证书,或者使用 `keytool` 工具管理 keystore。
- Windows: 寻找 `%JAVA_HOME%\jre\lib\security\cacerts`,类似地添加证书到 keystore。
3. **配置信任store**:
- 使用 `keytool` 将服务器证书导入本地 keystore,并给它授予信任权限,命令类似于:
```
keytool -import -trustcacerts -alias <your_server_alias> -file <path_to_your_certificate>.cer -keystore $JAVA_HOME/lib/security/cacerts
```
4. **确认网络连接**:
- 确保网络连接稳定,且服务器地址正确无误。
阅读全文