Spring项目启动后报连接MYSQL错误两则

SpringBoot项目连接MySQL数据库SSLHandshakeException问题解决
在Linux服务器上部署SpringBoot应用时遇到数据库连接问题,错误表现为`javax.net.ssl.SSLHandshakeException: No appropriate protocol`。首先怀疑是数据库IP配置错误,但telnet验证IP和端口正常。接着尝试关闭防火墙,问题未解决,错误变为相同的SSLHandshakeException。根据参考文档,在数据库URL中添加`useSSL=false`参数后,成功解决了连接问题。这表明可能是服务器SSL配置与数据库连接要求不匹配导致的问题。

Linux服务器上面部署一个springboot项目,项目启动后连接数据库总是报错。问题如下

javax.net.ssl.SSLHandshakeException: No appropriate protocol

开始以为是数据库的ip地址有问题,然后 telnet ip port是正常的,搜了一下上述错误,发现是防火墙没关导致的,执行命令关闭防火墙

systemctl stop firewalld

然后仍然报错,却换了个错误:

Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol

参考文档 :https://blog.youkuaiyun.com/weixin_44729221/article/details/117783087

在连接的后面加上 useSSL=false参数以后正常

jdbc:mysql://10.2.18.39:3306/cachecloud?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&connectTimeout=3000&socketTimeout=10000&serverTimezone=Asia/Shanghai&useSSL=false
### 问题分析与解决方案 在 IDEA 中启动 Snowy 框架时,如果连接 MySQL 数据库错,可能涉及多个方面的配置问题。以下是详细分析和解决方法: #### 1. 检查数据库连接配置 确保 `application.yml` 或 `application.properties` 文件中的数据库连接配置正确。参考提供的引用[^1],检查以下内容是否与实际环境一致: ```yaml spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC username: root password: 981216 ``` 注意以下几点: - **驱动类名**:引用中使用的是 `org.gjt.mm.mysql.Driver`,但推荐使用较新的 `com.mysql.cj.jdbc.Driver`。 - **URL 参数**:确保 `useUnicode=true`、`characterEncoding=utf-8` 和 `serverTimezone=UTC` 等参数正确设置。 - **用户名和密码**:确认数据库的用户名和密码是否正确。 #### 2. 检查依赖配置 确保项目中引入了正确的 MySQL 驱动依赖。参考引用[^2],在 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> ``` 同时,确保 Spring Boot 的版本与 MySQL 驱动兼容。如果遇到兼容性问题,可以参考引用[^3],将 Spring Boot 版本调整为稳定的 `2.3.5.RELEASE`。 #### 3. 检查数据库服务状态 确认 MySQL 数据库服务是否正常运行,并且监听的端口(如 `3306`)是否开放。可以通过以下命令测试连接: ```bash mysql -u root -p -h localhost -P 3306 ``` 如果连接失败,可能是数据库服务未启动或防火墙阻止了访问。 #### 4. 检查日志信息 查看 IDEA 启动时的日志输出,定位具体的错误信息。常见的错误包括: - **无法加载驱动类**:检查是否遗漏了 MySQL 驱动依赖。 - **连接超时**:确认数据库地址和端口是否正确。 - **认证失败**:检查用户名和密码是否匹配。 #### 5. 检查 Snowy 框架的特殊配置 Snowy 框架可能有额外的数据库配置要求。例如,框架可能需要特定的 MyBatis 配置文件路径。参考引用[^1],确保以下配置正确: ```yaml mybatis: config-location: classpath:mybatis/mybatis-config.xml mapper-locations: classpath:mybatis/mapper/*.xml type-aliases-package: com.xige.springcloud.POJO ``` #### 6. 测试连接 在代码中添加简单的数据库连接测试逻辑,验证配置是否生效。例如: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseTest { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC"; String user = "root"; String password = "981216"; try (Connection connection = DriverManager.getConnection(url, user, password)) { System.out.println("数据库连接成功!"); } catch (SQLException e) { e.printStackTrace(); } } } ``` ### 注意事项 - 如果仍然错,请提供完整的错误日志以便进一步分析。 - 确保使用的 MySQL 驱动版本与数据库版本兼容。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值