项目场景:
例如:IDEA连接Mysql时出现报错
问题描述
出现以下报错:
at JDBC.JdbcTest.main(JdbcTest.java:18) Caused by:
javax.net.ssl.SSLHandshakeException: No appropriate protocol
(protocol is disabled or cipher suites are inappropriate)
解决方案:
在URL中添加在数据库后面添加
?createDatabaseIfNotExist=true&useSSL=false
:如:
jdbc:mysql://localhost:3306/mysql?createDatabaseIfNotExist=true&useSSL=false
原理:
useSSL=false
这个参数是告诉JDBC驱动在连接到MySQL服务器时不要使用SSL加密,从而允许在不适用SSL的情况下建立连接。
- MySQL服务器没有配置SSL:如果MySQL服务器没有配置SSL证书和密钥,或者SSL配置不正确,那么尝试使用SSL连接将会失败。
- 客户端和服务器之间的SSL协议或密码套件不兼容:如你之前遇到的
SSLHandshakeException
所示,这可能是由于Java环境的安全设置与MySQL服务器的SSL配置不匹配所导致的。 - 开发或测试环境中的临时解决方案:在开发或测试环境中,为了简化配置或避免SSL相关的错误,可能会选择禁用SSL。但是不使用ssl加密可能会有安全风险。