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

mysql优化-升级8.0服务启动失败

当你在使用Java数据库连接时,尤其是在使用诸如Spring Boot等框架时,配置useInformationSchema=true可能导致Java服务无法启动。这通常是因为JDBC URL的配置错误或者对MySQL JDBC驱动的版本不兼容。

information_schema是MySQL数据库中的一个系统数据库,用于存储关于数据库和表的元数据信息。该数据库中的表包含了关于数据库、表、列、索引、触发器、权限等的详细信息。

具体存储信息可参考:

MySQL之information_schema数据库详细讲解 - 问答 - 亿速云

在mysql5.0以后增加useInformationSchema参数,默认值为false

在mysql8.0之后修改默认值为true。

注意:mysql8.0之前手动在jdbc-url指定参数useInformationSchema=true可能会产生其它bug

1.当此参数为true后,服务启动时加载元数据会加载上述表及数据,尤其是当我们应用库中的表数量过多索引过多及过大时会导致服务启动超时。

2.当此参数为true后会导致不支持分布式事务注解@GlobalTransactional 当项目中添加此注解后会报错

useInformationSchema参数在程序启动初始化加载数据库信息时,会决定,Connection.getMetaData()方法返回的DatabaseMetaData 对象是com.mysql.jdbc.DatabaseMetaData,还是com.mysql.jdbc.DatabaseMetaDataUsingInfoSchema

不同的版本不兼容也会导致此方法调用异常导致无法返回正确的表注释等信息从而启动失败

所以我们最简单的方法就是在升级8.0之后增加mysql参数:

useInformationSchema=false

useInformationSchema参数设置为false,应用程序将不再使用信息模式。这意味着应用程序将直接与数据库进行交互,而不是通过查询信息模式来获取元数据。这可以提高性能,因为不需要额外的查询操作。

信息模式是一种数据库模式,它提供了关于数据库表、列、索引等元数据的信息。当使用信息模式时,应用程序可以查询这些元数据以获取有关数据库结构的信息。然而,在某些情况下,应用程序可能不需要这些元数据,或者需要更细粒度的控制来访问数据库结构。

如果使用了sharding-jdbc此类插件,在服务启动时就会加载所有库表信息,更不需要信息模式。


http://www.kler.cn/a/536087.html

相关文章:

  • 部署LLM模型到云端
  • Java 中的 Spring 框架,以及 Spring Boot 和 Spring Cloud 的区别?
  • 三维粒子滤波(Particle Filter)MATLAB例程,估计三维空间中匀速运动目标的位置(x, y, z),提供下载链接
  • 【C语言系列】深入理解指针(5)
  • LabVIEW自定义测量参数怎么设置?
  • [25] cuda 应用之 nppi 实现图像色彩调整
  • 250207-MacOS修改Ollama模型下载及运行的路径
  • python编程-内置函数 bytes() , bytearray()详解
  • 微服务架构中的事件驱动设计:使用 Kafka 和 Apache Pulsar 实现高效的事件流管理
  • 【k8s集群应用】kubectl命令行工具管理-陈述式管理
  • 在线免费 HTML 预览工具
  • 星闪开发入门级教程之安装编译器与小项目烧录
  • feign 远程调用详解
  • python编程-内置函数bin(),bool(),abs() ,all(),any(),ascii(),max(),min() 详解
  • 【AIGC提示词系统】基于 DeepSeek R1 + Claude AI占卜师:探索生活预测的新方式
  • GitHub Copilot:智能助手觉醒
  • 攻防世界ctf
  • 深入浅出深度优先搜索(DFS)——以经典N皇后问题为例
  • 探索元宇宙:Facebook 如何重塑社交生态
  • A Comprehensive Study on Text-attributed Graphs: Benchmarking and Rethinking
  • 第3章《VTK可视化基础》
  • 蓝桥杯准备 【入门3】循环结构
  • Axure大屏可视化动态交互设计:解锁数据魅力,引领决策新风尚
  • 代码随想录day30
  • 行测智能组卷【61分】
  • ctf网络安全题库 ctf网络安全大赛答案