PyCharm 2025.3 Help

由于 SSLHandshakeException,无法连接到数据库。

由于 Java 安全策略 ,已禁用 TLS 1.0 和 TLS 1.1 协议的使用。 此 Java 更新导致当您尝试连接仍接受这些协议的旧服务器时出现 javax.net.ssl.SSLHandshakeException 错误。

作为修复,您可以显式启用这些协议。 请注意,这可能会导致漏洞问题。 建议使用较新的 TLS 版本。

MySQL

  1. 通过以下任一方式打开数据源属性:

    • 数据库 工具窗口的工具栏上,点击 数据源图标数据源

    • Shift+Enter

    打开数据源与驱动程序对话框
  2. 选择要为其启用已禁用算法的数据源(例如, MySQL 8.0.3)。 以下必需的算法可能被禁用: SSLv3TLSv1TLSv1.1RC4DESMD5withRSADH keySize < 1024EC keySize < 2243DES_EDE_CBCanonNULLinclude jdk.disabled.namedCurves

  3. 在数据源的右侧窗格中,点击 测试连接

  4. 在通知中,选择要执行的操作。 您可以从以下操作中进行选择:

    • 编辑禁用的算法 :打开所选数据源的 高级 选项卡,并将焦点移动到 虚拟机选项 字段。 在 虚拟机选项 字段中,您可以手动编辑已禁用算法的列表(针对 Djdk.tls.disabledAlgorithms 选项)。

    • 启用TLSv1 :从 Djdk.tls.disabledAlgorithms 选项中移除 TLSv1。 此操作将启用 TLS 1.0。

    • 启用TLSv1.1 :从 Djdk.tls.disabledAlgorithms 选项中移除 TLSv1.1。 此操作将启用 TLS 1.1。

    • 启用JDBC 驱动程序中的所有协议 :从 Djdk.tls.disabledAlgorithms 选项中移除 SSLv3TLSv1TLSv1.1RC4DESMD5withRSADH keySize < 1024EC keySize < 2243DES_EDE_CBCanonNULLinclude jdk.disabled.namedCurves。 此操作将启用所有已禁用的算法。

  5. 点击 测试连接 ,检查修复是否生效。

    您可以先尝试 启用TLSv1启用TLSv1.1。 如果错误仍然发生,请尝试启用其他算法。

    javax.net.ssl.SSLHandshakeException

Microsoft SQL Server

  1. 在文件浏览器中,创建一个 custom.java.security 文件,内容如下:

    jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \ DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ include jdk.disabled.namedCurves

    请注意,TLSv1 已从已禁用算法列表中移除。

  2. 通过以下任一方式打开数据源属性:

    • 数据库 工具窗口的工具栏上,点击 数据源图标数据源

    • Shift+Enter

    打开数据源与驱动程序对话框
  3. 选择您的 Microsoft SQL Server 数据源,点击 高级 选项卡,并在 虚拟机选项 字段中添加以下选项: -Djava.security.properties=${PATH_TO_FILE?}/custom.java.security ,其中 ${PATH_TO_FILE?} 是创建的 custom.java.security 文件的路径。

  4. 在主菜单中,转到 文件(F) | 使缓存失效 | 重启

    在使缓存失效对话框中的仅重新启动选项
  5. 尝试连接到您的 Microsoft SQL Server 数据源。

Snowflake 数据源设置中 custom.java.security 文件的路径
最后修改日期: 2025年 12月 2日