记一MySQL连接速度慢的问题
某一个程序启动速度超级慢,查看日志得知是是在Init DruidDataSource ~ {dataSource-1} inited 这一段耗时最长,这一段是Druid 数据源初始化,进行连接的创建等,使用mysql命令行连接发现连接超级慢,可见是在创建连接的时候导致慢。
原因:
性能开销:由于需要进行 DNS 解析(以及反向解析),连接过程会有一定的延迟,尤其是在 DNS 配置不当或 DNS 服务器响应较慢的情况下。
DNS 不可用时的影响:如果 DNS 服务器不可用或配置有问题,连接 MySQL 服务器时可能会变得非常缓慢,甚至无法连接。
解决方案:
启用
skip-name-resolve会跳过反向 DNS 解析,这样 MySQL 只会基于 IP 地址来进行连接和身份验证,从而加速连接过程并避免 DNS 配置或延迟导致的问题。
[mysqld]
skip-name-resolve
同时,请注意在增加该配置参数后,mysql的授权表中的host字段就不能够使用域名而只能够使用 ip地址了,因为这是禁止了域名解析的结果。
SELECT user, host, authentication_string FROM mysql.user;
MySQL连接过程
客户端(client): 192.168.1.100
服务端:
DNS 解析
主机名解析:当客户端通过主机名(例如 mysql -h example.com -u user -p)连接 MySQL 服务器时,MySQL 会首先通过 DNS(域名系统)解析该主机名为 IP 地址。这个过程涉及向 DNS 服务器发送请求并接收响应。
DNS 查询:客户端向 DNS 服务器查询 example.com(或者你指定的任何主机名),DNS 服务器会返回该主机名的 IP 地址(例如 192.168.1.100)。如果 DNS 解析失败(比如域名不存在,或者 DNS 服务器不可用),连接过程将失败。
如果直接使用IP进行连接,则这一步跳过
建立 TCP 连接
连接过程:一旦 DNS 解析完成,客户端使用解析到的 IP 地址和指定的端口号(MySQL 默认端口是 3306)建立 TCP 连接。
握手过程:在连接建立后,MySQL 服务器和客户端之间会进行 TCP 握手。这是一个标准的网络协议过程,确保双方的连接是可靠的。
发送连接请求
客户端向 MySQL 服务器发送连接请求。这个请求包括客户端的用户名、密码、目标数据库、字符集等信息。
主机名反向解析
根据IP解析出主机名就是反向解析
1、MySQL 服务器收到连接请求,客户端的 IP 地址是 192.168.1.100
2、MySQL 服务器将该 IP 地址转换为反向 DNS 查询格式:100.1.168.192.in-addr.arpa。
3、MySQL 服务器向 DNS 服务器发送查询请求,查询 100.1.168.192.in-addr.arpa 是否存在反向解析记录。
4、DNS 服务器返回 client作为主机名。
5、MySQL 服务器使用 client作为主机名进行身份验证,验证是否允许来自该主机的连接。
如果反向解析出来的主机名在root用户允许访问的主机内,那么这个连接就被授权,否则MySQL 将拒绝该客户端的连接请求。
身份验证
MySQL 服务器验证客户端提交的用户名和密码。如果验证成功,服务器会根据客户端的请求返回数据库的相关信息。
建立会话
如果身份验证成功,MySQL 会为该客户端创建一个会话并允许其执行查询或操作。
相关文章:
记一MySQL连接速度慢的问题
某一个程序启动速度超级慢,查看日志得知是是在Init DruidDataSource ~ {dataSource-1} inited 这一段耗时最长,这一段是Druid 数据源初始化,进行连接的创建等,使用mysql命令行连接发现连接超级慢,可见是在创建连接的时…...
asp.net core webapi项目中 在生产环境中 进不去swagger
builder.WebHost.UseUrls 是 ASP.NET Core 中配置应用程序监听 URL 或端口的方法。通过使用这个方法,你可以指定应用程序应该在哪些 URL 上运行,以便接收 HTTP 请求。 1.在appsetting.json中 添加 "LaunchUrl": "http://*:327"2.在…...
逆向攻防世界CTF系列63-secret-string-400
逆向攻防世界CTF系列63-secret-string-400 丢入exeinfo,查得zip,解压得四个文件 点进Task,查看源码:Test your luck! Enter valid string and you will know flag 顺理成章地看js 定位check函数 调用了machine的loadcode 跟进…...
Datawhale AI 冬令营学习笔记-零编程基础制作井字棋小游戏
井字棋小游戏是通过豆包MarsCode实现的,没有改动任何的代码,全部是通过对话让AI进行优化和改进。 开始进入正题:进入豆包MarsCode在线IDE,直接点击上方蓝字,或复制链接打开: 豆包 MarsCode - 编程助手。 IDE界面&…...
分布式专题(10)之ShardingSphere分库分表实战指南
一、ShardingSphere产品介绍 Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在…...
clickhouse解决suspiciously many的异常
1. 问题背景 clickhouse安装在虚拟机上,持续写入日志时,突然关机,然后重启,会出现clickhouse可以正常启动,但是查询sql语句,提示suspiciously many异常,如图所示 2. 问题修复 touch /data/cl…...
计算机的错误计算(一百九十)
摘要 用两个大模型计算cot(1.234). 其中,1.234是以弧度为单位的角度。结果保留10位有效数字。实验表明,两个的计算公式虽然不同,但是都是正确的。然而,数值计算则是有问题的---包括每一个中间运算与结果。 例1. 计算cot(1.234)…...
STM32-笔记12-实现SysTick模拟多线程流水灯
1、前言 正常STM32实现多线程,需要移植一个操作系统FreeRTOS。但是在这里不移植FreeRTOS怎么实现多线程呢?使用SysTick,那么怎么使用SysTick来模拟多线程呢?前面我们知道SysTick就是一个定时器,它不是在主函数的while循…...
牛客网刷题 ——C语言初阶——BC114 小乐乐排电梯
1.牛客网 :BC114 小乐乐排电梯 题目描述: 小乐乐学校教学楼的电梯前排了很多人,他的前面有n个人在等电梯。电梯每次可以乘坐12人,每次上下需要的时间为4分钟(上需要2分钟,下需要2分钟)。请帮助…...
web三、 window对象,延时器,定时器,时间戳,location对象(地址),本地存储-localStorage,数组去重new Set
一、window对象 window对象 是一个全局对象,也可以说是JavaScript中的 顶级对象 像document、alert()、console.log()这些都是window的属性,基本BOM的属性和方法都是window的 所有通过 var定义 在全局作用域中的 变量 、 函数 都会变成window对象的属…...
【EthIf-13】EthIfGeneral容器配置-01
1.EthIfGeneral类图结构 下面是EthIfGeneral配置参数的类图,比较重要的参数就是配置: 接收中断是否打开发送确认中断是否打开EthIf轮询周期 1.EthIfGeneral参数的含义...
‘pnpm’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
‘pnpm’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 1.情况: npm -v 和 node -v的都正常就是 pnpm-v 无效 检查环境变量也没看出问题 2.分析 没有正确添加环境变量 3.解决 找到npm的全局安装目录 npm list -g --depth 0这里出现了npm的全局安装…...
ECMAScript 6-11 概述
1. ECMA 介绍 ECMA(European Computer Manufacturers Association)是欧洲计算机制造商协会,目标是评估、开发和认可电信和计算机标准。1994年后改名为Ecma国际。 2. ECMAScript 是什么 ECMAScript 是由Ecma国际通过ECMA-262标准化的脚本程…...
sqlalchemy连接dm8 get_columns BIGINT VARCHAR字段不显示
问题 标题即为问题, 问题出现原因 sqlalchemy对应的sqlalchemy_dm源码需要调整 版本说明 python 3.10 dmPython 2.5.5(2.4.8也可以) sqlalchemy1.4.52 sqlalchemy_dm1.4.39 环境说明 部署环境 ubuntu20 开发环境window11 wsl2 ubuntu20 可能会出现的…...
运动控制卡网络通讯的心跳检测之C#上位机编程
本文导读 今天,正运动小助手给大家分享一下如何使用C#上位机编程实现运动控制卡网络通讯的心跳检测功能。 01 ECI2618B硬件介绍 ECI2618B经济型多轴运动控制卡是一款脉冲型、模块化的网络型运动控制卡。控制卡本身最多支持6轴,可扩展至12轴的运动控制…...
QT 控件定义为智能指针引发的bug
问题描述: std::unique_ptr<QStackedLayout> m_stacked_layout; 如上为定义; 调用: Line13ABClient::Line13ABClient(QWidget *parent) : BaseWidget(parent) { // 成员变量初始化 m_get_ready false; m_tittle_wnd…...
Scala项目(图书管理系统)
3、service BookService package org.app package serviceimport org.app.dao.{BookDAO, BorrowRecordDAO} import org.app.models.{BookModel, BorrowRecordModel}import java.time.LocalDateTime import scala.collection.mutable.ListBuffer// 图书业务逻辑层 class BookS…...
前端开发 详解 Node. js 都有哪些全局对象?
在 Node.js 中,全局对象(Global Objects)是指在任何模块中都可以直接访问的对象和变量,而不需要显式地进行导入。Node.js 提供了一些全局对象,帮助开发者在编写应用程序时更加方便地进行一些常见操作,如文件…...
2024_12_20_生活记录
年底了,提前祝各位朋友们新年快乐!我将近两年没动笔写blog了,主要确实挺忙。。。今天想简单聊聊自己的近期想法,一方面是职业规划,一方面是生信,最后是个人感悟。 职业规划 熟悉我的朋友们会了解我之前一直…...
Sequelize ORM 现有表如何使用
一、 在mysql中创建一个表 或者随便找一个现有的表 已经有了一张叫做xw_posts的表。表里的字段非常简单,大家可以自己建一下 CREATE TABLE xw_posts (id int unsigned NOT NULL AUTO_INCREMENT,name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_…...
Spring Boot 4.0正式版GA后72小时内,头部云厂商紧急下架3款旧Agent插件——你的生产集群是否仍在使用已被标记为EOL的Instrumentation库?
第一章:Spring Boot 4.0 Agent-Ready 架构演进与EOL危机全景Spring Boot 4.0 并非官方已发布版本,而是社区与企业级监控、可观测性厂商围绕 Java Agent 深度集成所推动的架构预演范式。其核心驱动力源于 Spring Boot 3.x 的 Jakarta EE 9 迁移完成、Graa…...
猫抓浏览器扩展:网页媒体资源嗅探与下载解决方案指南
猫抓浏览器扩展:网页媒体资源嗅探与下载解决方案指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在当今多媒体内容丰富的互联网环境…...
Pi0具身智能v1在仓储物流中的应用:一套代码实现自动分拣
Pi0具身智能v1在仓储物流中的应用:一套代码实现自动分拣 1. 物流分拣的现状与挑战 走进任何一家现代物流仓库,你都会看到相似的场景:传送带上的包裹川流不息,工人们快速分拣着各种形状和大小的物品。这种传统分拣方式虽然成熟&a…...
红队评估红日靶场7
声明 本文所涉及的技术、代码、工具及方法仅供网络安全研究与授权测试使用。 未经目标系统所有者书面授权,严禁对任何系统进行渗透测试、漏洞探测或攻击行为。 作者(本人)对因滥用本文内容而导致的任何直接或间接后果不承担法律责任。 请遵守…...
Pixel Aurora Engine 集成SpringBoot:打造企业级创意内容API服务
Pixel Aurora Engine 集成SpringBoot:打造企业级创意内容API服务 1. 企业创意内容生产的痛点与机遇 在数字化营销时代,企业每天需要生产大量创意内容来满足不同渠道、不同受众的需求。从社交媒体海报到电商主图,从广告素材到活动页面&#…...
开箱即用的AI视觉工具:万物识别镜像部署与简单调用演示
开箱即用的AI视觉工具:万物识别镜像部署与简单调用演示 1. 引言:让AI视觉识别触手可及 想象一下,你刚拿到一个功能强大的AI视觉识别工具,它能识别5万多种日常物品,而且直接用中文输出结果。但当你准备使用时…...
MiniCPM-V-2_6数据中心:机柜图识别+温控与负载均衡建议
MiniCPM-V-2_6数据中心:机柜图识别温控与负载均衡建议 1. 项目背景与价值 在现代数据中心运维中,机柜设备识别和温度监控是两项关键任务。传统方法需要人工巡检和手动记录,效率低下且容易出错。MiniCPM-V-2_6作为先进的视觉多模态模型&…...
OpenClaw备份策略:gemma-3-12b-it自动化数据保护方案
OpenClaw备份策略:gemma-3-12b-it自动化数据保护方案 1. 为什么需要AI驱动的自动化备份? 上个月我的移动硬盘突然罢工,导致三个月的项目文档全部丢失。这次惨痛经历让我意识到:传统备份方案存在两个致命缺陷——依赖人工记忆和缺…...
30分钟掌握OpenClaw:千问3.5-9B新手训练营
30分钟掌握OpenClaw:千问3.5-9B新手训练营 1. 为什么选择OpenClaw千问3.5-9B组合 去年我在尝试自动化处理日常工作报告时,发现市面上的RPA工具要么太笨重,要么需要复杂的编程知识。直到遇到OpenClaw这个开源框架,配合千问3.5-9B…...
Claude Skills工作原理介绍(SKILL.md、available_skills、渐进式加载:三层上下文架构、最少惊讶原则)
文章目录Claude Skills 是如何工作的?什么是 Claude Skills?Skills 的核心结构触发机制:Claude 如何决定"要不要查手册"?渐进式加载:三层上下文架构Skills 的生命周期:从创建到迭代1. 捕捉意图2.…...
