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

Spring Boot启动卡在Root WebApplicationContext: initialization completed in...

Spring Boot启动 打印Root WebApplicationContext: initialization completed in...这行日志完成后需要等很长时间才能真正启动完成。

分析一下发现是连接某个机器的MySQL就会出现这种情况。使用客户端软件连接MySQL时也很慢,但连接完成后执行MySQL各种语句非常看。查看MySQL链接时,发现所有的链接都会出现unauthenticated user,时间较长,过后就正常中了。

将Spring Boot链接池全部改为1,发现可以较快的启动程序。推测MySQL连接时比较慢导致的,在连接MySQL时,会进行反向DNS查找。经查询发现skip-name-resolve有这么一个参数可以控制,打开mysql的配置文件(my.cnf),在[mysqld]下面增加一行:

skip-name-resolve  
重新载入配置文件或者重启MySQL服务即可。

在连接MySQL时,不管连接是通过hosts还是ip的方式,MySQL都会对DNS做反查,IP到DNS,由于反查的接续速度过慢,大量的链接建立比较慢,所以出现程序假死。

为什么要使用"skip_name_resolve"参数?

使用"skip_name_resolve"参数可以提高数据库服务器的性能和安全性。当数据库服务器需要进行用户认证和授权操作时,通常需要获取客户端的IP地址,这样才能判断用户的身份和访问权限。而获取IP地址的常用方式是通过进行DNS解析,将客户端的域名解析为IP地址。然而,DNS解析是一个耗时的过程,可能会对数据库服务器的性能产生一定影响。

此外,启用"skip_name_resolve"参数还可以增强数据库服务器的安全性。在某些情况下,可能存在域名解析的风险,例如,当域名被劫持或者DNS服务器受到攻击时,可能会导致数据库服务器将域名解析为错误的IP地址。这样一来,可能会导致数据库服务器错误地认证和授权了非法用户。通过禁用域名解析,即启用"skip_name_resolve"参数,可以减少被域名劫持和DNS攻击的风险。

参考:
https://www.cnblogs.com/BY1314/p/17946371
https://www.cnblogs.com/_Chill/p/3890339.html

https://wenku.baidu.com/view/b2b5a8405cbfc77da26925c52cc58bd6318693b2.html?_wkts_=1725269215116&bdQuery=skip-name-resolve


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

相关文章:

  • android studio 更改gradle版本方法(备忘)
  • ES6字符串的新增方法
  • 【汇编语言】包含多个段的程序(二)—— 将数据、代码、栈放入不同的段
  • Python 中.title()函数和.lower()函数
  • MySQL(5)【数据类型 —— 字符串类型】
  • 批量重命名Excel文件并排序
  • TulingMember进销存系统
  • Save OpenAI response in Azure function to Blob storage
  • 简单上手 PIPENV
  • 2024高教社杯数学建模国赛ABCDE题选题建议+初步分析
  • 计算机网络-VRRP工作原理
  • kubelet 探针
  • Vue3:实现路径变量
  • 同时播放多个视频
  • Spring Cloud Gateway整合基于STOMP协议的WebSocket实战及遇到问题解决
  • 基于单片机的家居环境监测系统的设计
  • 项目7-音乐播放器7(测试报告)
  • MATLAB 中的矩阵拼接技巧
  • bash反弹shell分析
  • C#编程语言及.NET 平台快速入门指南
  • Facebook群控系统,零门槛营销
  • 基于人工智能的聊天情感分析系统
  • 使用Selenium WebDriver捕获网络请求
  • 【60天备战软考高级系统架构设计师——第七天:架构风格】
  • Python炒股自动化,怎样理解股票交易性质
  • 如何构建你自己的实时人脸识别系统