当前位置: 首页 > news >正文

linux部署项目, 报数据库连接不上错误

问题描述: sprinboot项目, 本地连线上数据库可以使用, springboot项目中java包的版本是8.0, 线上数据库是5.7, 但在将项目部署到服务器上的时候发现项目启动报错, 于是寻找问题, 发现是useSSL=true导致的

出问题前的链接地址:

url: jdbc:mysql://localhost:3306/java-video?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8

修改后的

url: jdbc:mysql://localhost:3306/java-video?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8

于是对useSSL=true进行查询, 以下是对它的描述

当你在MySQL连接字符串中使用useSSL=true时,你告诉JDBC驱动程序尝试通过SSL(安全套接字层)加密与MySQL服务器之间的连接。但是,这个设置可能会导致一些问题,尤其是当数据库服务器未正确配置以支持SSL连接时。以下是详细解释:

  1. SSL证书问题
    默认情况下,MySQL服务器使用自签名证书进行SSL连接。自签名证书不是由任何已知的证书颁发机构签名的,因此客户端(在此情况下为JDBC驱动程序)可能不信任它。为解决此问题,你可以:

    • 使用verifyServerCertificate=false在连接字符串中跳过服务器证书验证。
    • 使用由受信任的CA签名的证书,并在JDBC连接字符串中提供证书。
  2. 不支持的加密协议或密码套件
    如你之前的错误堆栈显示,可能出现“无适当的协议”或“密码套件不适当”的错误。这通常意味着客户端和服务器之间存在加密协议或密码套件的不匹配。为解决这个问题,你可以检查服务器和客户端都支持的协议,并在连接字符串中明确指定它。

  3. 服务器未启用SSL
    如果MySQL服务器未配置或未启用SSL支持,但客户端尝试建立SSL连接,将导致连接失败。

  4. 性能考虑
    SSL连接会对性能产生轻微的影响,因为它需要额外的加密和解密步骤。对于高安全性需求的应用来说,这是可接受的,但对于不需要此级别安全性的应用,可能会选择不使用SSL。

解决方法

  • 如果你不需要加密连接,可以简单地将useSSL=false设置在连接字符串中。
  • 如果你确实需要加密连接,那么需要确保MySQL服务器已正确配置SSL,并且你的JDBC连接字符串包含所有必要的SSL参数。

结论

在配置MySQL的SSL连接时,很重要的一点是要确保服务器和客户端都正确配置,并且它们之间的配置是兼容的。这涉及到正确的证书管理、确保双方都支持的加密协议和密码套件,以及可能需要的其他设置。正确配置后,SSL可以为MySQL连接提供强大的安全保障。

http://www.lryc.cn/news/133078.html

相关文章:

  • 现有的vue3+ts+vite项目集成electron
  • 线性代数的学习和整理8: 方阵和行列式相关(草稿-----未完成)
  • Ubuntu vi 左下角没有提示
  • Windows安装 Elasticsearch 教程
  • Dubbo 融合 Nacos 成为注册中心
  • kafka--kafka基础概念-ISR详解
  • 《Kubernetes部署篇:Ubuntu20.04基于外部etcd+部署kubernetes1.24.16集群(多主多从)》
  • 音频解码及如何在Java实现
  • Webshell 及检测绕过
  • Ubuntu22.4系统mongodb数据库安装
  • Vue初识别--环境搭建--前置配置过程
  • 数据在内存中的储存·大小端(文字+画图详解)(c语言·超详细入门必看)
  • Word怎么转换成PDF文档?多个Word转换成PDF步骤分享
  • 【C++习题集】-- 堆
  • vue + vue-office 实现多种文件(docx、excel、pdf)的预览
  • 30.Netty源码服务端启动主要流程
  • ssh端口转发
  • 独立站SEO是什么意思?自主网站SEO的含义?
  • Android JNI系列详解之NDK和JNI介绍
  • LeetCode //C - 20. Valid Parentheses
  • 浅析Java设计模式之四策略模式
  • 基于Spring Boot的餐厅订餐网站的设计与实现(Java+spring boot+MySQL)
  • 【图像分割】理论篇(1)评估指标代码实现
  • Git checkout 某个版本到指定文件夹下
  • Java多态详解(2)
  • Camtasia导入srt字幕乱码
  • YOLOv5、YOLOv8改进:SOCA注意力机制
  • 机器人的运动范围
  • 学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁
  • 微服务-Ribbon(负载均衡)