在使用 Java 应用程序连接 MySQL 数据库时,开发者可能会遇到 SSL 握手异常。本文将深入探讨这个问题的原因,并提供多种解决方案。
问题描述
当尝试建立与 MySQL 数据库的连接时,你可能会遇到以下错误:
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
这个错误表明 SSL 握手过程失败了。可能的原因包括:
- 客户端和服务器之间没有找到共同支持的 SSL/TLS 协议版本。
- 双方支持的加密套件(cipher suites)不匹配。
- SSL 证书配置问题。
快速解决方案
最简单的解决方法是在数据库连接 URL 中添加 useSSL=false
参数:
jdbc:mysql://localhost:3306/your_database?useSSL=false
这个参数会禁用 SSL/TLS 连接,允许使用非加密连接与数据库通信。
为什么这个解决方案有效?
- 它绕过了 SSL/TLS 握手