MySQL 从入门到精通(三):日志管理详解 —— 从排错到恢复的核心利器
在 MySQL 数据库的日常运维中,日志是定位问题、优化性能、数据恢复的核心工具。无论是排查服务器启动异常,还是分析慢查询瓶颈,亦或是通过二进制日志恢复误删数据,日志都扮演着 “数据库黑匣子” 的角色。本文将深入解析 MySQL 的 7 大核心日志类型,涵盖原理、配置、查看方法及实战场景,帮助你全面掌握日志管理技能。
目录
一、为什么需要 MySQL 日志?
二、7 大核心日志类型详解
2.1 错误日志(Error Log)—— 数据库的 “健康报告”
2.2 通用查询日志(General Query Log)——SQL 操作的 “监控录像”
2.3 慢查询日志(Slow Query Log)——SQL 性能的 “照妖镜”
2.4 撤销日志(Undo Log)—— 数据回滚的 “后悔药”
2.5 重做日志(Redo Log)—— 数据持久化的 “保障锁”
2.6 二进制日志(Binlog)—— 数据恢复与主从的 “基石”
2.7 中继日志(Relay Log)—— 主从复制的 “中转站”
三、日志管理最佳实践
总结
一、为什么需要 MySQL 日志?
在数据库的生命周期中,数据丢失、性能下降、操作失误等问题难以避免。日志的核心价值在于:
- 故障排查:记录服务器启动 / 关闭异常、SQL 执行错误等关键信息;
- 性能优化:通过慢查询日志定位执行耗时过长的 SQL;
- 数据恢复:二进制日志(Binlog)是主从复制和误删恢复的基础;
- 操作审计:通用查询日志记录所有客户端操作,用于追踪异常行为。
二、7 大核心日志类型详解
2.1 错误日志(Error Log)—— 数据库的 “健康报告”
错误日志是 MySQL 服务器运行的 “体检表”,记录启动 / 关闭过程、运行时错误、事件调度器信息等。
关键特性:
- 默认开启,存储位置由
log_error
参数控制; - 日志级别分为
[System]
(系统信息)、[Warning]
(警告)、[Error]
(错误); - 文件名通常为
主机名.err
(如LEGION.err
)。
查看与配置:
-
确定日志位置:
mysql> SHOW VARIABLES LIKE 'log_error'; +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | log_error | .\LEGION.err | +---------------+--------------+
输出结果表示日志文件路径为:
数据目录/LEGION.err
(数据目录可通过datadir
参数查看)。 -
修改存储位置(永久生效):
编辑 MySQL 配置文件(如 Windows 的my.ini
或 Linux 的my.cnf
):log-error="D:/mysql_logs/mysql_error.log" # 自定义路径
保存后重启 MySQL 服务生效。
实战场景:服务器启动失败时,优先查看错误日志中的[Error]
级信息,快速定位配置错误或文件权限问题。
2.2 通用查询日志(General Query Log)——SQL 操作的 “监控录像”
通用查询日志记录所有客户端的连接行为和 SQL 操作(包括SELECT
),适合短时间追踪操作场景。
关键特性:
- 默认关闭(
general_log=OFF
),避免磁盘和性能开销; - 存储格式支持文件(
FILE
)或表(TABLE
),通过log_output
参数控制; - 日志文件默认名为
主机名.log
(如LEGION.log
)。
开启与使用:
-
临时开启(重启后失效):
mysql> SET GLOBAL general_log = 'ON'; mysql> SET GLOBAL log_output = 'FILE'; # 输出到文件(默认)
-
永久开启:
在配置文件中添加:general-log=1 # 启用通用日志 general_log_file=D:/mysql_logs/general.log # 自定义路径 log-output=FILE # 输出到文件(可选TABLE/NULL)
-
验证日志记录:
执行任意 SQL(如USE mydb9_stusys;
),查看D:/mysql_logs/general.log
,会看到类似以下内容:240627 10:30:00 20 Connect root@localhost on mydb9_stusys using TCP/IP 20 Query USE mydb9_stusys
注意:长期开启会导致日志文件爆炸式增长,仅在需要定位操作轨迹时临时启用。
2.3 慢查询日志(Slow Query Log)——SQL 性能的 “照妖镜”
慢查询日志记录执行时间超过阈值(long_query_time
)或未使用索引的查询,是 SQL 优化的核心依据。
关键特性:
- 默认开启(
slow_query_log=ON
),生产环境建议保持开启; - 阈值默认 10 秒(
long_query_time=10.000000
),支持微秒级精度; - 日志文件默认名为
主机名-slow.log
(如LEGION-slow.log
)。
配置与分析:
-
查看当前配置:
mysql> SHOW GLOBAL VARIABLES LIKE '%slow_query_log%'; +---------------------+-----------------+ | Variable_name | Value | +---------------------+-----------------+ | slow_query_log | ON | | slow_query_log_file | LEGION-slow.log | +---------------------+-----------------+mysql> SHOW GLOBAL VARIABLES LIKE 'long_query_time'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+
-
调整阈值(临时):
mysql> SET GLOBAL long_query_time = 2; # 改为2秒
永久生效需在配置文件中添加:
slow_query_log=1 slow_query_log_file=D:/mysql_logs/slow.log long_query_time=2
-
日志内容示例:
# Time: 240627 10:35:00 # User@Host: root[root] @ localhost [] Id: 20 # Query_time: 5.123456 Lock_time: 0.000123 Rows_sent: 1 Rows_examined: 10000 SET timestamp=1719453300; SELECT * FROM student WHERE sname='张三';
关键字段说明:
Query_time
:查询执行时间(秒);Lock_time
:锁等待时间;Rows_examined
:扫描的行数(未使用索引时会很大)。
实战技巧:使用pt-query-digest
工具分析慢日志,快速定位高耗时、高扫描行数的 SQL。
2.4 撤销日志(Undo Log)—— 数据回滚的 “后悔药”
撤销日志(Undo Log)是 InnoDB 引擎的核心日志,用于事务回滚和多版本并发控制(MVCC)。
核心原理:
- 记录事务的反向操作(如
INSERT
对应DELETE
,UPDATE
对应旧值恢复); - 当事务回滚或需要旧版本数据时,通过 Undo Log 还原;
- 存储位置(MySQL 8.0.20+):
数据目录/undo_001
、undo_002
(默认 2 个文件)。
典型场景:执行UPDATE
操作后未提交,此时回滚事务,InnoDB 通过 Undo Log 将数据恢复为修改前的状态。
2.5 重做日志(Redo Log)—— 数据持久化的 “保障锁”
重做日志(Redo Log)是 InnoDB 的 “预写式日志”(Write-Ahead Logging),确保内存数据未刷盘时,宕机后仍可恢复。
核心机制:
- 写数据前先写 Redo Log(顺序写,性能高);
- 内存数据(Buffer Pool)定期刷盘,Redo Log 记录未刷盘的变更;
- 宕机重启时,通过 Redo Log 重新执行未刷盘的操作,保证数据一致性。
存储与查看:
- 存储位置(MySQL 8):
数据目录/#innodb_redo
目录,包含#ib_redoN
(当前使用)和#ib_redoN_tmp
(空闲)文件; - 查看 Redo Log 状态:
存储与查看:
- 存储位置(MySQL 8):
数据目录/#innodb_redo
目录,包含#ib_redoN
(当前使用)和#ib_redoN_tmp
(空闲)文件; - 查看 Redo Log 状态:
sql
mysql> SHOW GLOBAL STATUS LIKE '%innodb%redo%'; +-------------------------------------+------------+ | Variable_name | Value | +-------------------------------------+------------+ | Innodb_redo_log_enabled | ON | # 是否启用 | Innodb_redo_log_physical_size | 3276800 | # 单个文件大小(字节) +-------------------------------------+------------+
关键参数:innodb_log_file_size
(单个 Redo Log 文件大小,默认 48M)、innodb_log_files_in_group
(文件数量,默认 2)。
2.6 二进制日志(Binlog)—— 数据恢复与主从的 “基石”
二进制日志(Binlog)是 MySQL 最重要的日志之一,记录所有数据变更操作(INSERT
/UPDATE
/DELETE
),不记录查询。
核心作用:
- 主从复制:从库通过复制主库的 Binlog 实现数据同步;
- 数据恢复:结合全量备份和 Binlog,恢复到任意时间点;
- 审计追踪:记录所有变更操作,追踪误删责任人。
配置与使用:
-
开启 Binlog:
在配置文件中添加:log-bin=mysql-bin # 日志文件前缀(如mysql-bin.000001) binlog-format=ROW # 日志格式(ROW/STATEMENT/MIXED) server-id=1 # 服务器唯一ID(主从复制必须)
重启后生效,通过
SHOW VARIABLES LIKE 'log_bin';
验证是否开启。 -
查看 Binlog 文件列表:
mysql> SHOW BINARY LOGS; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000001 | 123456 | | mysql-bin.000002 | 456789 | +------------------+-----------+
-
查看当前写入的 Binlog:
mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000002 | 1234 | | | +------------------+----------+--------------+------------------+
-
解析 Binlog 内容:
使用mysqlbinlog
工具(需进入数据目录):# Windows命令行 C:\ProgramData\MySQL\MySQL Server 8.0\Data> mysqlbinlog mysql-bin.000002 > binlog.sql
输出内容示例(ROW 格式):
# at 1234 #240627 10:45:00 server id 1 end_log_pos 1356 CRC32 0xabcdef Write_rows: table id 100 flags: STMT_END_F BINLOG ' xyz... # 二进制内容 '/*!*/; ### INSERT INTO `mydb1_test`.`t1` ### SET ### @1=1 /* INT meta=0 nullable=0 is_null=0 */ ### @2='张三' /* STRING(255) meta=255 nullable=0 is_null=0 */
-
刷新 Binlog(生成新文件):
mysql> FLUSH LOGS; # 立即关闭当前Binlog,生成新文件
或通过命令行工具:
mysqladmin flush-logs -u root -p
误删库恢复实战:
假设误删mydb1_test
库,可通过以下步骤恢复:
- 找到最近的全量备份(如
back1.sql
); - 恢复全量备份:
mysql -u root -p mydb1_test < back1.sql
; - 使用
mysqlbinlog
提取全量备份后到误删前的 Binlog:bash
mysqlbinlog --start-datetime="2024-06-27 09:00:00" --stop-datetime="2024-06-27 10:40:00" mysql-bin.000002 | mysql -u root -p mydb1_test
(通过--start-position
和--stop-position
可更精确控制)
2.7 中继日志(Relay Log)—— 主从复制的 “中转站”
中继日志仅存在于主从架构的从库,用于存储从主库复制的 Binlog 内容,从库通过解析 Relay Log 执行 SQL,实现数据同步。
核心流程:
- 从库 IO 线程复制主库 Binlog 到本地 Relay Log;
- 从库 SQL 线程解析 Relay Log 并执行,同步数据;
- 日志文件默认名为
主机名-relay-bin.000001
。
三、日志管理最佳实践
- 错误日志:定期检查
[Error]
级日志,及时处理启动 / 连接异常; - 通用查询日志:仅在追踪操作时临时开启,避免长期运行;
- 慢查询日志:结合
pt-query-digest
分析,优化高耗时 SQL; - Binlog:定期归档(如按天切割),避免占用过多磁盘空间;
- Redo/Undo Log:监控
innodb_log_available
等状态,确保日志空间充足。
总结
日志是 MySQL 运维的 “眼睛”,掌握各类日志的原理与使用方法,能快速定位故障、优化性能、保障数据安全。下一篇我们将深入讲解 MySQL 的备份与恢复策略,包括物理备份、逻辑备份、增量备份的实战操作,敬请期待!
相关文章:
MySQL 从入门到精通(三):日志管理详解 —— 从排错到恢复的核心利器
在 MySQL 数据库的日常运维中,日志是定位问题、优化性能、数据恢复的核心工具。无论是排查服务器启动异常,还是分析慢查询瓶颈,亦或是通过二进制日志恢复误删数据,日志都扮演着 “数据库黑匣子” 的角色。本文将深入解析 MySQL 的…...
单脉冲前视成像多目标分辨算法——论文阅读
单脉冲前视成像多目标分辨算法 1. 论文的研究目标及实际意义1.1 研究目标1.2 实际问题与产业意义2. 论文的创新方法及公式解析2.1 核心思路2.2 关键公式与模型2.2.1 单脉冲雷达信号模型2.2.2 匹配滤波输出模型2.2.3 多目标联合观测模型2.2.4 对数似然函数与优化2.2.5 MDL准则目…...
SpringBoot项目容器化进行部署,meven的docker插件远程构建docker镜像
需求:将Spring Boot项目使用容器化进行部署 前提 默认其他环境,如mysql,redis等已经通过docker部署完毕, 这里只讨论,如何制作springboot项目的镜像 要将Spring Boot项目使用docker容器进行部署,就需要将Spring Boot项目构建成一个docker镜像 一、手动…...
【金仓数据库征文】政府项目数据库迁移:从MySQL 5.7到KingbaseES的蜕变之路
摘要:本文详细阐述了政府项目中将 MySQL 5.7 数据库迁移至 KingbaseES 的全过程,涵盖迁移前的环境评估、数据梳理和工具准备,迁移实战中的数据源与目标库连接配置、迁移任务详细设定、执行迁移与过程监控,以及迁移后的质量验证、系…...
C++GO语言微服务和服务发现②
01 创建go-micro项目-查看生成的 proto文件 02 创建go-micro项目-查看生成的main文件和handler ## 创建 micro 服务 命令:micro new --type srv test66 框架默认自带服务发现:mdns。 使用consul服务发现: 1. 初始consul服务发现&…...
手机银行怎么打印流水账单(已解决)
一、中国银行 登录中国银行手机银行APP。 在首页点击“更多”,向左滑动找到并点击“助手”。 在助手页面选择“交易流水打印”。 点击“立即申请”,选择需要打印的账户和时间段。 输入接收流水账单的电子邮箱地址。 提交申请后,在“申请…...
单片机-STM32部分:10-2、逻辑分析仪
飞书文档https://x509p6c8to.feishu.cn/wiki/VrdkwVzOnifH8xktu3Bcuc4Enie 安装包如下:根据自己的系统选择,目前这个工具只有window版本哦 安装方法比较简单,都按默认下一步即可,注意不要安装到中文路径哦。 其余部分参考飞书文档…...
Scala与Go的异同教程
当瑞士军刀遇到电锯:Scala vs Go的相爱相杀之旅 各位准备秃头的程序猿们(放心,用Go和Scala不会加重你的发际线问题),今天我们来聊聊编程界的"冰与火之歌"——Scala和Go的异同。准备好瓜子饮料,我…...
【算法-哈希表】常见算法题的哈希表套路拆解
算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和位运算模拟链表 在刷题的过程中,我们会频繁遇到一些“高频套路”——而哈希表正是其中最常用也最高效的工具之一。它能帮助我们在 O(1) 的时间复杂度内完成查找、插入与…...
前端取经路——现代API探索:沙僧的通灵法术
大家好,我是老十三,一名前端开发工程师。在现代Web开发中,各种强大的API就像沙僧的通灵法术,让我们的应用具备了超乎想象的能力。本文将带你探索从离线应用到实时通信,从多线程处理到3D渲染的九大现代Web API,让你的应用获得"通灵"般的超能力。 在前端取经的第…...
深入了解 ArkTS:HarmonyOS 开发的关键语言与应用实践
随着 HarmonyOS(鸿蒙操作系统)的推出,华为为开发者提供了一套全新的开发工具和编程语言,使得跨设备、跨平台的应用开发成为可能。在这些工具中,ArkTS(Ark TypeScript)作为一种专为 HarmonyOS 设…...
Flask 调试的时候进入main函数两次
在 Flask 开启 Debug 模式时,程序会因为自动重载(reloader)的机制而启动两个进程,导致if __name__ __main__底层的程序代码被执行两次。以下说明其原理与常见解法。 Flask Debug 模式下自动重载机制 Flask 使用的底层服务器 Wer…...
Git 时光机:修改Commit信息
前言 列位看官都知道,Git 的每一次 git commit,其中会包含作者(Author)和提交者(Committer)的姓名与邮箱。有时可能会因为配置错误、切换了开发环境,或者只是单纯的手滑,导致 commi…...
DAY 21 常见的降维算法
知识点回顾: LDA线性判别PCA主成分分析t-sne降维 还有一些其他的降维方式,也就是最重要的词向量的加工,我们未来再说 作业: 自由作业:探索下什么时候用到降维?降维的主要应用?或者让ai给你出题&…...
Docker使用小结
概念 镜像( Image ) :相当于一个 root 文件系统;镜像构建时,分层存储、层层构建;容器( Container ) :镜像是静态的定义,容器是镜像运行时的实体;…...
kubectl top 查询pod连接数
在 Kubernetes 中,kubectl top 命令默认仅支持查看 Pod 或节点的 CPU/内存资源使用情况,并不直接提供 TCP 连接数的统计功能。若要获取 Pod 的 TCP 连接数,需结合其他工具和方法。以下是具体实现方案: 1. 直接进入容器查看 TCP 连…...
Kubernetes生产实战(十七):负载均衡流量分发管理实战指南
在Kubernetes集群中,负载均衡是保障应用高可用、高性能的核心机制。本文将从生产环境视角,深入解析Kubernetes负载均衡的实现方式、最佳实践及常见问题解决方案。 一、Kubernetes负载均衡的三大核心组件 1)Service资源:集群内流…...
Git 分支指南
什么是 Git 分支? Git 分支是仓库内的独立开发线,你可以把它想象成一个单独的工作空间,在这里你可以进行修改,而不会影响主分支(或 默认分支)。分支允许开发者在不影响项目实际版本的情况下,开…...
自动泊车技术—相机模型
一、相机分类及特性 传感器类型深度感知原理有效工作范围环境适应性功耗水平典型成本区间数据丰富度单目相机运动视差/几何先验1m~∞光照敏感1-2W5−5−502D纹理中双目相机立体匹配 (SGM/SGBM算法)0.3m~20m纹理依赖3-5W50−50−3002D稀疏深度多摄像头系统多视角三角测量0.1m~5…...
程序代码篇---esp32视频流处理
文章目录 前言一、ESP32摄像头设置1.HTTP视频流(最常见)2.RTSP视频流3.MJPEG流 二、使用OpenCV读取视频流1. 读取HTTP视频流2. 读取RTSP视频流 三、使用requests库读取MJPEG流四、处理常见问题1. 连接不稳定或断流2. 提高视频流性能2.1降低分辨率2.2跳过…...
数据结构与算法分析实验12 实现二叉查找树
实现二叉查找树 1、二叉查找树介绍2.上机要求3.上机环境4.程序清单(写明运行结果及结果分析)4.1 程序清单4.1.1 头文件 TreeMap.h 内容如下:4.1.2 实现文件 TreeMap.cpp 文件内容如下:4.1.3 源文件 main.cpp 文件内容如下: 4.2 实现展效果示5…...
深入浅出之STL源码分析2_类模版
1.引言 我在上面的文章中讲解了vector的基本操作,然后提出了几个问题。 STL之vector基本操作-CSDN博客 1.刚才我提到了我的编译器版本是g 11.4.0,而我们要讲解的是STL(标准模板库),那么二者之间的关系是什么&#x…...
Docker、Docker-compose、K8s、Docker swarm之间的区别
1.Docker docker是一个运行于主流linux/windows系统上的应用容器引擎,通过docker中的镜像(image)可以在docker中构建一个独立的容器(container)来运行镜像对应的服务; 例如可以通过mysql镜像构建一个运行mysql的容器,既可以直接进入该容器命…...
【Linux】线程的同步与互斥
目录 1. 整体学习思维导图 2. 线程的互斥 2.1 互斥的概念 2.2 见一见数据不一致的情况 2.3 引入锁Mutex(互斥锁/互斥量) 2.3.1 接口认识 2.3.2 Mutex锁的理解 2.3.3 互斥量的封装 3. 线程同步 3.1 条件变量概念 3.2 引入条件变量Cond 3.2.1 接口认识 3.2.2 同步的…...
C++发起Https连接请求
需要下载安装openssl //stdafx.h #pragma once #include<iostream> #include <openssl/ssl.h> #include <openssl/err.h> #include <iostream> #include <string>#pragma comment(lib, "libssl.lib") #pragma comment(lib, "lib…...
Linux 内核链表宏的详细解释
🔧 Linux 内核链表结构概览 Linux 内核中的链表结构定义在头文件 <linux/list.h> 中。核心结构是: struct list_head {struct list_head *next, *prev; }; 它表示一个双向循环链表的节点。链表的所有操作都围绕这个结构体展开。 🧩 …...
[架构之美]Spring Boot集成MyBatis-Plus高效开发(十七)
[架构之美]Spring Boot集成MyBatis-Plus高效开发(十七) 摘要:本文通过图文代码实战,详细讲解Spring Boot整合MyBatis-Plus全流程,涵盖代码生成器、条件构造器、分页插件等核心功能,助你减少90%的SQL编写量…...
游戏引擎学习第270天:生成可行走的点
回顾并为今天的内容定下基调 今天的计划虽然还不完全确定,可能会做一些内存分析,也有可能暂时不做,因为目前并没有特别迫切的需求。最终我们会根据当下的状态随性决定,重点是持续推动项目的进展,无论是 memory 方面还…...
批量统计PDF页数,统计图像属性
软件介绍: 1、支持批量统计PDF、doc\docx、xls\xlsx页数 2、支持统计指定格式文件数量(不填格式就是全部) 3、支持统计JPG、JPEG、PNG图像属性 4、支持统计多页TIF页数、属性 5、支持统计PDF、JPG画幅 统计图像属性 「托马斯的文件助手」…...
QT Creator配置Kit
0、背景:qt5.12.12vs2022 记得先增加vs2017编译器 一、症状: 你是否有以下症状? 1、用qt新建的工程,用qmake,可惜能看见的只有一个pro文件? 2、安装QT Creator后,使用MSVC编译显示no c com…...
[架构之美]IntelliJ IDEA创建Maven项目全流程(十四)
[架构之美]IntelliJ IDEA创建Maven项目全流程(十四) 摘要:本文将通过图文结合的方式,详细讲解如何使用IntelliJ IDEA快速创建Maven项目,涵盖环境配置、项目初始化、依赖管理及常见问题解决方案。适用于Java开发新手及…...
SpringBoot学习(上) , SpringBoot项目的创建(IDEA2024版本)
目录 1. SpringBoot介绍 SpringBoot特点 2. SpringBoot入门 2.1 创建SpringBoot项目 Spring Initialize 第一步: 选择创建项目 第二步: 选择起步依赖 第三步: 查看启动类 2.2 springboot父项目 2.3 测试案例 2.3.1 数据库 2.3.2 生成代码 1. SpringBoot介绍 Spring B…...
《Python星球日记》 第51天:神经网络基础
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、引言:走进神经网络的世界二、神经元与激活函数1. 神经元&#x…...
MindSpore框架学习项目-ResNet药物分类-模型评估
目录 4.模型评估 4.1模型预测 4.1.1加载模型 4.1.2通过传入图片路径进行推理 单张图片推理代码解释 4.2图片推理 4.2.1构造可视化推理结果函数 可视化推理结果函数代码解释 4.2.2进行单张推理 参考内容: 昇思MindSpore | 全场景AI框架 | 昇思MindSpore社区…...
Visual Studio Code 前端项目开发规范合集【推荐插件】
文章目录 前言代码格式化工具(Prettier)1、下载 prettier 相关依赖:2、安装 Vscode 插件(Prettier):3、配置 Prettier(.prettierrc.cjs): 代码规范工具(ESLin…...
uniapp-商城-48-后台 分类数据添加修改弹窗bug
在第47章的操作中,涉及到分类的添加、删除和更新功能,但发现uni-popup组件存在bug。该组件的函数接口错误导致在小程序中出现以下问题:1. 点击修改肉类名称时,回调显示为空,并报错“setVal is not defined”࿰…...
OpenLayers 精确经过三个点的曲线绘制
OpenLayers 精确经过三个点的曲线绘制 根据您的需求,我将提供一个使用 OpenLayers 绘制精确经过三个指定点的曲线解决方案。对于三个点的情况,我们可以使用 二次贝塞尔曲线 或 三次样条插值,确保曲线精确通过所有控制点。 实现方案 下面是…...
uniapp小程序中实现无缝衔接滚动效果
组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动动画,可以根据自己的需要进行艺术化的更改需要滚动的内容,也可以自定义更改滚动速度。 <template><view cla…...
【Docker 新手入门指南】第四章:镜像加速
【Docker 新手入门指南】系列文章目录 【Docker 新手入门指南】第一章:前言【Docker 新手入门指南】第二章:架构概述【Docker 新手入门指南】第三章:快速安装【Docker 新手入门指南】第四章:镜像加速 文章目录 🚀【Doc…...
k8s删除pv和pvc后,vg存储没释放分析
原因是pv对应的lvm没删除 pv如下: local-068e2cac-22de-40f3-af90-efd151d043c8 100Gi RWO Retain Released sase-ops/alertmanager-kube-prometheus-stack-alertmanager-db-alertmanager-kube-prometheus-stack-alertmanager-0 …...
Ubuntu 22.04(WSL2)使用 Docker 安装 Zipkin 和 Skywalking
Ubuntu 22.04(WSL2)使用 Docker 安装 Zipkin 和 Skywalking 分布式追踪工具在现代微服务架构中至关重要,它们帮助开发者监控请求在多个服务之间的流动,识别性能瓶颈和潜在错误。本文将指导您在 Ubuntu 22.04(WSL2 环境…...
【DLF】基于语言的多模态情感分析
作者提出的不足 模态平等处理导致冗余与冲突 问题:现有MSA方法对所有模态(语言、视觉、音频)平等处理,忽略模态间贡献差异(如语言为主导模态)。后果:跨模态交互引入冗余信息(如视觉和音频中与情感无关的噪声),甚至模态对间双向信息传递(…...
window 显示驱动开发-线性伸缩空间段
线性伸缩空间段类似于线性内存空间段。 但是,伸缩空间段只是地址空间,不能容纳位。 若要保存位,必须分配系统内存页,并且必须重定向地址空间范围以引用这些页面。 内核模式显示微型端口驱动程序(KMD)必须实…...
[Linux网络_71] NAT技术 | 正反代理 | 网络协议总结 | 五种IO模型
目录 1.NAT技术 NAPT 2.NAT和代理服务器 3.网线通信各层协议总结 补充说明 4.五种 IO 模型 1.什么是IO?什么是高效的IO? 2.有那些IO的方式?这么多的方式,有那些是高效的? 异步 IO 🎣 关键缺陷类比…...
免费5个 AI 文字转语音工具网站!
一个爱代码的设计师在运营,不定时分享干货、学习方法、效率工具和AIGC趋势发展。个人网站:tomda.top 分享几个好用的文字转语音、语音转文字的在线工具,麻烦需要的朋友保存。 01. ChatTTS 中英文智能转换,语音自然流畅,在线免费…...
【入门】数字走向II
描述 输入整数N,输出相应方阵。 输入描述 一个整数N。( 0 < n < 10 ) 输出描述 一个方阵,每个数字的场宽为3。 #include <bits/stdc.h> using namespace std; int main() {int n;cin>>n;for(int in;i>1;i--){for(…...
Linux基础(文件权限和用户管理)
1.文件管理 1.1 文件权限 文件的权限总共有三种:r(可读),w(可写),x(可执行),其中r是read,w是write,x是execute的缩写。 我们…...
【BYD_DM-i技术解析】
关键词:构型、能量流、DM-i 一、发展历史:从DM1到DM5的技术跃迁 比亚迪DM(Dual Mode)技术始于2008年,其发展历程可划分为五代,核心目标始终围绕“油电协同”与“高效节能”展开: DM1…...
React Hooks 精要:从入门到精通的进阶之路
Hooks 是 React 16.8 引入的革命性特性,它让函数组件拥有了类组件的能力。以下是 React Hooks 的详细使用指南。 一、基础 Hooks 1. useState - 状态管理 import { useState } from react;function Counter() {const [count, setCount] = useState(0); // 初始值为0return …...
为什么选择 FastAPI、React 和 MongoDB?
在技术日新月异的今天,全栈开发需要兼顾效率、性能和可扩展性。FastAPI、React 和 MongoDB 这三者的组合,恰好构成了一个覆盖前后端与数据库的技术黄金三角。它们各自解决了开发中的核心痛点,同时以轻量化的设计和强大的生态系统,成为现代 Web 开发的首选方案。以下将从架构…...