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

Spring Boot应用的配置文件(application.properties或application.yml)指定应用连接MySQL数据库

<!-- MyBatis+Mysql 5添加依赖--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.41</version></dependency>

com.mysql.cj.jdbc.Driver是MySQL Connector/J 8.x及以上版本中的JDBC驱动类名。

在早期的版本中,如MySQL Connector/J 5.x,驱动类名通常是com.mysql.jdbc.Driver

MySQL Connector/J 5.x

spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC  
spring.datasource.username=root  
spring.datasource.password=your_password  
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

MySQL Connector/J 8.x

spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC  
spring.datasource.username=root  
spring.datasource.password=your_password  
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url属性指定了数据库的URL,包括主机名、端口号、数据库名以及一些可选的连接参数。spring.datasource.usernamespring.datasource.password分别指定了连接数据库所需的用户名和密码。最后,spring.datasource.driver-class-name属性指定了JDBC驱动类名。

serverTimezone=UTC参数用于指定服务器的时区,这有助于解决因时区差异而导致的日期时间问题。

在MySQL JDBC连接字符串中,useSSL=false 和 allowPublicKeyRetrieval=true 是两个重要的连接参数,尤其是在使用较新版本的MySQL数据库(如MySQL 8.0及以上)和MySQL Connector/J JDBC驱动时。这两个参数的作用和设置原因如下:

useSSL=false

  • 作用:这个参数用于指示JDBC驱动在建立数据库连接时是否应该使用SSL加密。设置为false意味着不使用SSL加密来建立连接。
  • 设置原因:在某些开发或测试环境中,可能不需要或不想使用SSL加密来连接数据库,因为SSL加密会增加连接的开销和复杂性。然而,在生产环境中,通常建议使用SSL加密来保护数据库连接的安全性。
  • 注意:如果数据库服务器配置为要求SSL连接(例如,require_secure_transport=ON),则即使将useSSL设置为false,连接也可能无法成功建立。在这种情况下,应该配置数据库服务器以允许非SSL连接,或者在客户端使用SSL连接。

allowPublicKeyRetrieval=true

  • 作用:这个参数与MySQL 8.0及以上版本中的缓存的公钥和SHA-256密码加密功能相关。当设置为true时,它允许客户端在连接时从服务器检索公钥,并使用这个公钥来验证服务器的身份。
  • 设置原因:在MySQL 8.0之前,默认的密码加密机制是基于SHA-1的,但从MySQL 8.0开始,默认使用更强的SHA-256密码加密机制。这种机制要求客户端在建立连接时能够验证服务器的公钥。如果allowPublicKeyRetrieval被设置为false(这是MySQL 8.0及更高版本JDBC驱动的默认值),并且客户端没有预配置的公钥来验证服务器,那么连接将失败。
  • 注意:尽管将allowPublicKeyRetrieval设置为true可以允许连接成功,但在生产环境中,更好的做法是使用预配置的公钥或证书链来验证服务器的身份,而不是依赖动态检索的公钥。这可以通过设置trustCertificateKeyStoreUrltrustCertificateKeyStorePassword等参数来实现,以指向包含受信任证书的密钥库。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 什么是dom驱动?
  • Docker核心技术:应用架构演进
  • 服务攻防-应用协议cve
  • Thinkphp开发文档二次整理版
  • 子查询
  • Langchain 对pdf,word,txt等不同文件的加载解析
  • C语言-栈和队列
  • springboot 配置 spring data redis
  • spring-boot 整合 redisson 实现延时队列(文末有彩蛋)
  • TiDB实践—索引加速+分布式执行框架创建索引提升70+倍
  • SpringBoot RestHighLevelClient 按版本更新
  • 自动驾驶AVM环视算法–全景和标定全功能算法实现和exe测试demo
  • vscode配置latex环境制作【文档、简历、resume】
  • Chapter16 渲染优化技术——Shader入门精要学习笔记
  • 企业培训 | CATIA数字样机培训
  • ES学习笔记(12)--Symbol
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JavaScript对象详解
  • Linux中的硬链接与软链接
  • Mysql优化
  • python_bomb----数据类型总结
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • vue中实现单选
  • Web Storage相关
  • webgl (原生)基础入门指南【一】
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 从0到1:PostCSS 插件开发最佳实践
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 使用 @font-face
  • 王永庆:技术创新改变教育未来
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • !!java web学习笔记(一到五)
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (1)无线电失控保护(二)
  • (20)docke容器
  • (23)Linux的软硬连接
  • (bean配置类的注解开发)学习Spring的第十三天
  • (python)数据结构---字典
  • (Python第六天)文件处理
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (备忘)Java Map 遍历
  • (函数)颠倒字符串顺序(C语言)
  • (四)Linux Shell编程——输入输出重定向
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (转)负载均衡,回话保持,cookie
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET 事件模型教程(二)
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .stream().map与.stream().flatMap的使用
  • /etc/sudoers (root权限管理)
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [383] 赎金信 js