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

MySQL 日志简介

总览

MySQL Server 有以下⼏种⽇志,可以记录服务器正在发⽣的活动。
⽇志类型⽇志信息
⼀般查询⽇志 (General query log)
已建⽴的客⼾端连接和从客⼾端接收到的语句
错误⽇志 (Error log)
mysqld在启动、运⾏或停⽌时遇到的问题
慢查询⽇志 (Slow query log)
执⾏时间超过 long_query_time 指定秒数的查询
⼆进制⽇志 (Binary log)
更改数据的语句(也⽤于主从复制)
中继⽇志 (Relay log)
从源服务器接收到的数据更改
DDL⽇志(metadata log)
DDL 语句执⾏的操作
回滚⽇志/撤销⽇志(undo log)
⽤于事务的回滚操作
重做⽇志(redo log)
⽤于服务器崩溃恢复
  • 默认情况下,除 Windows 上的错误⽇志外,不启⽤任何⽇志,Linux下默认开启错误⽇志和⼆进制⽇志
  • 通过 FLUSH LOGS 语句刷新⽇志来强制服务器关闭并重新打开⽇志⽂件,也可以使⽤mysqladmin 的 flush-logs refresh 参数,或mysqldump 的 --flush-logs --master-data 选项

⼀般查询日志和慢查询日志的输出形式

在服务器运⾏期间可以控制⼀般查询和慢查询⽇志的禁⽤与开启,也可以更改⽇志⽂件名,⼀般查询⽇志和慢查询⽇志记录的输出⽅式可以指定为⽇志⽂件或 mysql 系统库中的 general_log slow_log 表,也可以两者同时指定。

log_output 系统变量指定⽇志输出的形式,但并不会真正的启⽤⽇志。 log_output 可以有三个值,分别是: ABLE (表)、 FILE (⽂件)、 NONE (不输出),可以同时指定多个值,并⽤逗号隔开,未指定值时默认是 FILE ,如果列表中存在 NONE 则其他的不⽣效,也就是说 NONE 的优先级最⾼。
  • 通过设置 general_log 系统变量的值来控制⼀般查询⽇志的 开启 1 禁⽤ 0 ,如果要为⽇志指定⾃定义的路径或⽂件名可以使⽤ general_log_file 系统变量
  • 通过设置 slow_query_log 系统变量的值来控制慢查询⽇志的 开启 1 禁⽤ 0 ,如果要为⽇志指定⾃定义的路径或⽂件名可以使⽤ slow_query_log_file 系统变量
  • 以选项⽂件 /etc/mysql/my.cnf 中的配置为例,将⼀般查询⽇志和慢查询⽇志写⼊⽇志⽂件,并指定⾃定义的⽇志路径
[mysqld]
#⽇志⽂件
log_output=FILE 
#开启⼀般查询⽇志 
general_log=1 
#指定⾃定义的⽂件名 
general_log_file=/var/lib/mysql/general.log 
#开启慢查询⽇志
slow_query_log=1 
#指定⾃定义的⽂件名
slow_query_log_file=/var/lib/mysql/slow_query.log
  • 也可以在运⾏ mysql 时修改 log_output 的值,以更改⽇志的输出形式,通过语句控制
set global log_output=[FILE, TABLE, NONE];
set global general_log=0或1;
set global slow_query_log=0或1;
set global general_log_file=自定义文件路径;
set global slow_query_log_file=自定义文件路径;
如果我们选择⽇志记录以表的形式输出,我们可以查看⽇志表的结构,可以使⽤以下语句:
show create table mysql.general_log\G # ⼀般查询⽇志
show create table mysql.slow_log\G # 慢查询⽇志

⼀般查询日志

General query log,⼀般查询⽇志,记录客⼾端连接或断开连接的信息,也会记录从客⼾端接收的
每个SQL语句。如果开启将会产⽣⼤量的内容,⾮常耗费服务器资源,所以默认为关闭(不开启),
要启⽤⼀般查询⽇志可以使⽤:请使⽤ general_log=1, 默认⽇志⽂件名为 host_name .log ,可以⽤ general_log_file= file_name 修改。其中日志的文件结构和表结构参数大体一致,我们学习表结构即可,general_log的表结构如下:
Create Table: CREATE TABLE `general_log` (`event_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),`user_host` mediumtext NOT NULL,`thread_id` bigint unsigned NOT NULL,`server_id` int unsigned NOT NULL,`command_type` varchar(64) NOT NULL,`argument` mediumblob NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COMMENT='General log'

其中connection_type 来指⽰⽤于建⽴连接的协议。TCP/IP 表⽰不使⽤SSL建⽴的TCP/IP连接、SSL/TLS 表⽰使⽤SSL建⽴的TCP/IP连接、Socket 表⽰Unix套接字⽂件连接、Named Pipe 表⽰Windows命名管道连接、 Shared Memory 表⽰Windows共享内存连接。

argument 表示表操作的具体SQL语句,不过这部分内容被加密成了一段乱码,如下

这时我们就需要使用 cast 函数进行转化,函数原型如下:

CAST(expression AS target_type)

其中,expression 是要转换的表达式或值,target_type 是目标数据类型。现在我们要将argument转化为我们能看得懂的文字,就需要使用如下代码

cast(argument as char)

  • 查询表中的⽇志内容
select date_format(event_time, '%Y-%m-%d %H:%i:%s') as time, user_host, thread_id, server_id, command_type, cast(argument as char) as query 
from mysql.general_log\G

截取部分信息如下

慢查询日志

  • 慢查询⽇志由执⾏时间超过系统变量 long_query_time 指定的秒数(默认为10秒)的 SQL 语句组成,并且检查的⾏数⼤于系统变量 min_examined_row_limit 指定值。被记录的慢查询需要进⾏优化,可以使⽤ mysqldumpslow客⼾端程序对慢⽇志进⾏分析汇总。
  • 默认为关闭(不开启),要启⽤慢查询⽇志可以使⽤:请使⽤ slow_query_log=1 .
  • 默认⽇志⽂件名为 host_name-slow.log ,可以使⽤ slow_query_log_file=file_name 修改
  • 默认情况下,不记录管理语句,也不记录不使⽤索引的查询,要记录不使⽤索引的查询,启⽤ log_queries_not_using_indexes 系统变量。当记录不使⽤索引的查询时,⽇志会快速增⻓,通过设置系统变量 log_throttle_queries_not_using_indexes 限制每分钟写⼊慢查询⽇志同类查询的数量,默认值是0,表⽰⽆限制;要记录管理语句,启⽤ log_slow_admin_statements 系统变量。管理语句包括 ALTER TABLE ANALYZE TABLE CHECK TABLE CREATE INDEX DROP INDEX OPTIMIZE TABLE REPAIR TABLE

慢查询⽇志表的表结构如下

Create Table: CREATE TABLE `slow_log` (`start_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),`user_host` mediumtext NOT NULL,`query_time` time(6) NOT NULL,`lock_time` time(6) NOT NULL,`rows_sent` int NOT NULL,`rows_examined` int NOT NULL,`db` varchar(512) NOT NULL,`last_insert_id` int NOT NULL,`insert_id` int NOT NULL,`server_id` int unsigned NOT NULL,`sql_text` mediumblob NOT NULL,`thread_id` bigint unsigned NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COMMENT='Slow log'
  • start_time:记录SQL语句执行完写slow log的时间。
  • user_host:执行SQL语句的用户和主机名。
  • query_time:SQL语句的执行时间,不包括锁等待时间。
  • lock_time:执行SQL语句前,等待锁的时间。
  • rows_sent:SQL语句返回的结果集行数。
  • rows_examined:SQL聚集执行时扫描的行数。
  • db:执行SQL语句的库名。
  • last_insert_id:与插入操作相关的ID。
  • insert_id:与插入操作相关的ID。
  • server_id:服务器ID。
  • sql_text:执行的SQL语句。
  • thread_id:执行SQL的线程ID。

错误日志

错误⽇志⼀般会记录mysqld 启动和关闭的次数、诊断消息,以及服务器运⾏期间发⽣的错误和警
告;例如MySQL需要⾃动检查或修复⼀个表,就会在错误⽇志中写⼊⼀条记录。错误⽇志默认使⽤ UTF-8 ( utf8mb3 )编码格式,并使⽤英语⽣成记录。

Windows 的默认错误日志路径

在Windows系统中,mysqld使⽤ --log-error --console 选项来确定默认的错误⽇志⽬标是控制台还是⽂件,规则如下:
  • 如果指定了 --console 选项,默认在控制台输出错误⽇志,如果 --console --log-error 同时指定,则 --console 优先级更⾼,并且 --log-error 将失效。
  • 如果没有指定 --log-error 或者没有指定具体的⽂件名,默认在数据⽬录中⽣成名为host_name.err 的⽇志⽂件。
  • 可以通过指定绝对路径,来更改默认的⽇志位置。
[mysqld]
log-error=D:/log/MySQL/Error/error_log.err # ⾃定义错误⽇志的路径

Unix 和Linux 的默认错误日志路径

在 Unix 和Linux 系统中,mysqld使⽤ --log-error 选项来指定默认错误⽇志⽬标,可以指定控制
台或是⽂件,如果是⽂件,规则如下:
  • 如果错误⽇志输出⽬标是控制台,则服务器将 log_error 系统变量设置为 stderr,否则,将以⽂件形式输⼊错误⽇志,并以 log_error 的值为⽂件名。
  • 如果显⽰写出 --log-error 但没有指定具体⽂件,则默认路径是数据⽬录中 host_name.err 的⽂件。
  • 可以在/etc/mysql/my.cnf 中通过指定绝对路径,来更改默认的⽇志位置。
[mysqld]
log-error=/var/log/mysql/error_log.err # ⾃定义错误⽇志的路径

错误日志中事件的字段

  • time :事件时间戳,精度为微秒
  • msg :事件消息字符串
  • prio :事件优先级,包括 System event - 系统(0)、 Error event - 错误(1)、 Warning event - 警告(2)或 Note/information event - 通知/提⽰事件(3),值越⼩优先级越⾼
  • err_code :事件错误代码
  • err_symbol :以字符串形式表⽰的事件错误符,例如 'ER_DUP_KEY' 
  • SQL_state :事件 SQLSTATE 值,与 err_symbol 对应,例如 'ER_DUP_KEY' 对应的 SQLSTATE为23000
  • subsystem :事件发⽣的⼦系统。可能的值: InnoDB (InnoDB存储引擎)、 Repl (复制⼦系统)、 Server (其他)

示例如下:

2023-07-27T14:15:59.267828+08:00 1 [System] [MY-011012] [Server] Starting 
upgrade of data directory.
2023-07-27T14:15:59.267942+08:00 1 [System] [MY-013576] [InnoDB] InnoDB 
initialization has started.
2021-07-27T14:16:11.478109+08:00 1 [System] [MY-013577] [InnoDB] InnoDB 
initialization has ended.

每一行日志内容从左到右依次为 time,prio,err_code,subsystem,错误具体详情。

如果使⽤ flush error logs   、flush logs(刷新所有日志)   语句或 mysqladmin flush-logs (刷新所有日志)命令刷新错误⽇志,服务器会将正在写⼊的任何错误⽇志⽂件关闭并重新打开,如果重新打开时找不到错误日志文件就会重新生成一个新的日志文件。
如果要⼿动重命名错误⽇志⽂件,可以在重命名操作之后执⾏刷新操作,服务器会以原⽂件名⽣成
⼀个新的错误⽇志⽂件,例如⽇志⽂件名为 host_name .err ,可以按以下步骤操作:
mv host_name.err host_name.err-old # 重命名⽇志⽂件
mysqladmin flush-logs # 刷新操作
mv host_name.err-old backup-directory # 把重命名的⽇志⽂件移动到备份⽬录

二进制日志

二进制⽇志包含数据库更改的"事件",不会记录 SELECT SHOW ,但会记录表的创建操作或
表数据的更改,⼆进制⽇志还包含每个语句更新数据时花费的时间信息,启动⼆进制⽇志,对服务
器性能稍微有些影响。
⼆进制⽇志的作⽤:
  • 主从节点数据复制:从节点服务器读取主节点服务器上的⼆进制⽇志⽂件,并根据⼆进制⽇志中记录的事件在从节点上执⾏相同的操作,保证主从节点服务器上数据⼀致,实现数据复制功能。
  • 数据恢复:从某个时间点恢复备份数据后,将重新执⾏备份时间点之后记录在⼆进制⽇志中的事件。这些事件使数据库从备份点更新到当前最新状态。
在mysql上查看⼆进制⽇志相关的系统变量
show variables like '%bin%';

  • 默认情况下启⽤⼆进制⽇志, log_bin 系统变量为 ON
  • 禁⽤⼆进制⽇志,可以指定 --skip-log-bin --disable-log-bin 选项
  • 选项 --log-bin=base_name ⽤于指定⼆进制⽇志⽂件的基本名称,如果不指定 --log-bin 选项,默认基本名称为 binlog ,建议为⼆进制⽇志指定⼀个基本名
  • ⼆进制⽇志⽂件名是由基本名+数字扩展名组成的,服务器每次创建⼀个新的⽇志⽂件时,数字扩展名都会增加,从⽽保证有序的⽂件系列,发⽣以下事件时,服务器都会在创建⼀个新的⽇志⽂件:1.服务器已启动或重新启动;2.服务器刷新⽇志;3.当前⽇志⽂件的⼤⼩达到 max_binlog_size (单个⽇志⽂件的最⼤字节数,最⼩值 4096 字节,最⼤值和默认值 1GB)
  • mysqld还会创建⼀个包含⼆进制⽇志⽂件名的⽇志索引⽂件,默认情况下,这与⼆进制⽇志⽂件具有相同的基本名称,扩展名为 .index . 可以使⽤选项 --log-bin-index=file_name修改索引⽂件名

  • ⼆进制⽇志⽂件和索引⽂件的默认位置是数据⽬录//var/lib/mysql。可以使⽤ --log-bin=file_name选项指定⾃定义路径, file_name 格式 = 绝对路径+基本名。 --log-bin 对应的系统变量是 log_bin_basename 

配置⽇志输出位置

查看二进制日志

  • 使⽤客⼾端⼯具mysqlbinlog查看
mysqlbinlog binlog.000011 > binlog.000011

左边 binlog.000011 为二进制日志文件,右边 binlog.000011 为导出的文件。

  • 通过SQL语句查看
show binlog events in 'binlog.000011' from N limit S;

例如,我们使用如下代码

show binlog events in 'binlog.000011' limit 10;

  • Log_name: 二进制日志文件名
  • Pos: 当前这条日志在文件的起始偏移量
  • Event_type: 日志类型
  • Server_id: 服务器Id,表明是哪台主机
  • End_log_pos: 当前日志在文件中的结束偏移量
  • Info: 具体执行的操作

配置日志输出位置

我们可以在/etc/mysql/my.cnf添加如下配置,改变日志的输出位置,使其更规范

# 服务器节点
[mysqld]
# ⼀般查询⽇志和慢查询⽇志记录⽅式为⽂件
log-output=FILE
# 开启⼀般查询⽇志
general-log=1
# ⼀般查询⽇志路径和⽂件名
general_log_file=/var/log/mysql/general.log
# 开启慢查询⽇志
slow-query-log=1
# 慢查询⽇志路径和⽂件名
slow_query_log_file=/var/log/mysql/slow_query.log
# 慢查询⽇志时间限制
long_query_time=10
# 错误⽇志路径和⽂件名
log-error=/var/log/mysql/error.log
# ⼆进制⽇志路径和基本名
log-bin=/var/log/mysql/binlog.log

服务器日志维护

MySQL 服务器可以创建多种不同的⽇志⽂件来帮助我们查看服务器的活动。但是必须定期清理这 些⽂件,以免⽇志占⽤过多的磁盘空间。在启⽤⽇志的情况下,通常希望备份和删除旧的⽇志⽂件,并把⽇志写到新⽂件。
  • 默认⼆进制⽇志的过期时间为30天,过期后将⾃动删除,要指定⾃定义过期时间,可以使⽤系统变binlog_expire_logs_seconds=N 单位为秒,在下⼀次启动服务器和刷新⽇志时删除过期⽇志⽂件
  • 强制使⽤新的⽇志⽂件可以⼿动刷新⽇志,当执⾏ flush logs 语句或 mysqladmin flush-logs mysqladmin refresh mysqldump --flush-logs mysqldump --master-data 命令时,会发⽣⽇志刷新。此外当⼆进制⽇志⽂件⼤⼩达到max_binlog_size 系统变量指定的值时,服务器会⾃动刷新⼆进制⽇志。
  • flush logs⽀持可选的修饰符以启⽤个别⽇志的选择性刷新:
flush binary logs # 刷新⼆进制⽇志
flush error logs # 刷新错误⽇志
flush general logs # 刷新⼀般查询⽇志
flush relay logs # 刷新中继⽇志
flush slow logs # 刷新慢查询⽇志
  • 刷新⼀般查询⽇志、慢查询⽇志或错误⽇志只是关闭并重新打开⽇志⽂件,如果要备份可以先重命名再执⾏刷新操作,⽐如⼀般查询⽇志、慢查询⽇志或错误⽇志⽂件名分别为: mysql.log mysql-slow.log err.log ,可以在命令⾏中使⽤如下⼀系列命令
cd mysql-data-directory #进⼊⽇志⽬录
mv mysql.log mysql.log.old #重命名⼀般查询⽇志
mv mysql-slow.log mysql-slow.log.old #重命名慢查询⽇志
mv err.log err.log.old #重命名错误⽇志
mysqladmin flush-logs #刷新⽇志

相关文章:

MySQL 日志简介

总览 MySQL Server 有以下⼏种⽇志,可以记录服务器正在发⽣的活动。 ⽇志类型⽇志信息 ⼀般查询⽇志 (General query log) 已建⽴的客⼾端连接和从客⼾端接收到的语句 错误⽇志 (Error log) mysqld在启动、运⾏或停⽌时遇到的问题 慢查询⽇志 (Slow query log) 执⾏…...

ubuntu清理磁盘

ubuntu清理磁盘脚本: #!/bin/bash#shell脚本用#作注释行,但是第一行的#!/bin/bash例外sudo apt-get clean sudo rm -rf /tmp/* sudo rm -rf /var/cache/*cd /var/log/ sudo du -h -d 1 rm -rf ./*cd ~/.cache sudo du -h -d 1 rm -rf ./*apt…...

鸿蒙APP之从开发到发布的一点心得

引言: 做鸿蒙开发大概有1年左右时间了,从最开始的看官方文档、看B站视频,到后来成功发布两款个人APP(房贷计算极简版、时简时钟 轻喷,谢谢)。简单描述一下里边遇到的坑以及一些经历吧。 学习鸿蒙开发 个…...

C++二十三种设计模式之享元模式

C二十三种设计模式之享元模式 一、组成二、特点三、目的四、缺点五、示例代码 一、组成 抽象享元类:声明操作方法。 具体享元类:使用内部数据和外部数据来实现操作方法。 享元管理者类:创建和管理具体享元对象。 二、特点 1、创建享元对象…...

基于Python的音乐播放器 毕业设计-附源码73733

摘 要 本项目基于Python开发了一款简单而功能强大的音乐播放器。通过该音乐播放器,用户可以轻松管理自己的音乐库,播放喜爱的音乐,并享受音乐带来的愉悦体验。 首先,我们使用Python语言结合相关库开发了这款音乐播放器。利用Tkin…...

基于32单片机的智能语音家居

一、主要功能介绍 以STM32F103C8T6单片机为控制核心,设计一款智能远程家电控制系统,该系统能实现如下功能: 1、可通过语音命令控制照明灯、空调、加热器、窗户及窗帘的开关; 2、可通过手机显示和控制照明灯、空调、窗户及窗帘的开…...

【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】

目录&#x1f60b; ​​​​​​ ⚙️C语言环境配置&#xff1a;Windows配置C语言环境(超级详细) <第1关&#xff1a;程序改错> 任务描述 相关知识 1. 头文件的引用 2. 基本语法规则 编程要求 测试说明 通关代码 测试结果 <第2关&#xff1a;scanf 函数>…...

基于Springboot的知名作家交流系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业多年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…...

服务器数据恢复—离线盘数超过热备盘数导致raidz阵列崩溃的数据恢复

服务器数据恢复环境&故障&#xff1a; 一台配有32块硬盘的服务器在运行过程中突然崩溃不可用。经过初步检测&#xff0c;基本上确定服务器硬件不存在物理故障。管理员重启服务器后问题依旧。需要恢复该服务器中的数据。 服务器数据恢复环境&#xff1a; 1、将服务器中硬盘…...

conda安装及demo:SadTalker实现图片+音频生成高质量视频

1.安装conda 下载各个版本地址&#xff1a;https://repo.anaconda.com/archive/ win10版本&#xff1a; Anaconda3-2023.03-1-Windows-x86_64 linux版本&#xff1a; Anaconda3-2023.03-1-Linux-x86_64 Windows安装 环境变量 conda -V2.配置conda镜像源 安装pip conda…...

内蒙古水系详细很全shp格式arcgis软件无偏移坐标下载后内容测评

标题中的“内蒙古水系详细很全shp格式arcgis软件无偏移坐标”指的是一个地理信息系统&#xff08;GIS&#xff09;数据集&#xff0c;该数据集详细记录了内蒙古地区的水系信息&#xff0c;并以ESRI公司的标准矢量数据格式——Shapefile&#xff08;.shp&#xff09;进行存储。S…...

RK3588平台开发系列讲解(系统篇)Linux Kconfig的语法

文章目录 一、什么是Kconfig二、config模块三、menuconfig四、menu 和 endmenu五、choice 和 endchoice六、source七、depends on八、default九、help十、逻辑表达式沉淀、分享、成长,让自己和他人都能有所收获!😄 一、什么是Kconfig Kconfig的语法及代码结构非常简单。本博…...

c#使用SevenZipSharp实现压缩文件和目录

封装了一个类&#xff0c;方便使用SevenZipSharp&#xff0c;支持加入进度显示事件。 双重加密压缩工具范例&#xff1a; using SevenZip; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.…...

【C++数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 1. 二叉排序树的基本概念 2. 二叉排序树节点结构体定义 3. 创建二叉排序树 4. 判断是否为二叉排序树 5. 递归查找关键字为 6 的结点并输出查找路径 6. 删除二叉排序树中的节点 测试说明 通关代码 测试结果 任务描述 本关任务&a…...

C# 服务生命周期:Singleton、Scoped、Transient

文章目录 1、概念:服务生命周期单例 (Singleton) :作用域 (Scoped) :瞬态 (Transient) : 2、对 Scoped 和 Transient 进一步辨析Scoped 生命周期Transient 生命周期选择哪种生命周期 1、概念:服务生命周期 单例 (Singleton) : 整个应用程序生命周期中只有一个实例被创建并共享…...

如何让用户在网页中填写PDF表格?

在网页中让用户直接填写PDF表格&#xff0c;可以大大简化填写、打印、扫描和提交表单的流程。通过使用复选框、按钮和列表等交互元素&#xff0c;PDF表格不仅让填写过程更高效&#xff0c;还能方便地在电脑或移动设备上访问和提交数据。 以下是在浏览器中显示可填写PDF表单的四…...

w140体育馆使用预约平台的设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…...

Linux(Ubuntu)下ESP-IDF下载与安装完整流程(4)

接前一篇文章:Linux(Ubuntu)下ESP-IDF下载与安装完整流程(3) 本文主要看参考官网说明,如下: 快速入门 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 Linux 和 macOS 平台工具链的标准设置 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 前边几回讲解了第一步 —— …...

PDF预览插件

PDF预览插件 可用于当前页面弹窗形式查看,可增加一些自定义功能 pdf预览插件 代码块: pdfobject.js <div class="pdfwrap"><div class="item"><h3>笑场</h3><div class="tags"><p>李诞</p><i&…...

【微服务】2、网关

Spring Cloud微服务网关技术介绍 单体项目拆分微服务后的问题 服务地址问题&#xff1a;单体项目端口固定&#xff08;如黑马商城为8080&#xff09;&#xff0c;拆分微服务后端口各异&#xff08;如购物车808、商品8081、支付8086等&#xff09;且可能变化&#xff0c;前端难…...

计算机网络--路由表的更新

一、方法 【计算机网络习题-RIP路由表更新-哔哩哔哩】 二、举个例子 例1 例2...

网络安全抓包

#知识点&#xff1a; 1、抓包技术应用意义 //有些应用或者目标是看不到的&#xff0c;这时候就要进行抓包 2、抓包技术应用对象 //app,小程序 3、抓包技术应用协议 //http&#xff0c;socket 4、抓包技术应用支持 5、封包技术应用意义 总结点&#xff1a;学会不同对象采用…...

字玩FontPlayer开发笔记8 Tauri2文件系统

字玩FontPlayer开发笔记8 Tauri2文件系统 字玩FontPlayer是笔者开源的一款字体设计工具&#xff0c;使用Vue3 ElementUI开发&#xff0c;源代码&#xff1a; github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontplayer 笔记 字玩目…...

http源码分析

一、HttpURLConnection http连接池源码分析 二、HttpClient 连接池&#xff0c;每个路由最大连接数 三、OkHttp okhttp的连接池与socket连接...

【vim】vim常用操作总结

vim常用操作总结 一&#xff0c;简介二&#xff0c;操作介绍2.1 命令模式2.1.1 删除&#xff08;剪切&#xff09;光标所在行2.1.2 复制2.1.3 粘贴2.1.4 跳到行末2.1.5 跳到行首2.1.6 撤销操作 2.2 视图模式2.3 命令模式2.4 编辑模式 三&#xff0c;总结 一&#xff0c;简介 在…...

【学Rust开发CAD】1 环境搭建

文章目录 一、搭建C/C编译环境二、安装Rust三、配置 PATH 环境变量四、验证安装结果五、安装编辑工具 一、搭建C/C编译环境 Rust 的编译工具依赖 C 语言的编译工具&#xff0c;这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux 系统&#xff0c;往…...

RK3588开发笔记-spi接口调试

目录 前言 一、SPI接口简介 二、原理图连接 三、设备树配置 四、spi调试 五、spi应用软件接口 总结 前言 在嵌入式系统开发中,SPI(Serial Peripheral Interface)接口作为一种同步、全双工、多设备、多主机的通信协议,广泛应用于连接各种外围设备,如ADC、DAC、数据存…...

AlphaPi相关硬件驱动提取

初涉硬件编程&#xff0c;在咸鱼上搞了几块AlphaPi和microbit的板鼓捣了一下&#xff0c;alphapi生态不完善&#xff0c;网上又无任何文档&#xff0c;搞封闭&#xff0c;可玩性实在有限&#xff0c;但貌似相关扩展板是可以插microbit的&#xff0c;于是想把这些扩展版用microb…...

【Unity3D】Text文本文字掉落效果

相关技术&#xff1a;Text、TextMesh、Rigidbody&#xff08;刚体&#xff09;、BoxCollider&#xff08;碰撞体&#xff09;、TextGenerator、文本网格、文字网格 原理&#xff1a;使用UGUI Text获取其文字的每个字符网格坐标&#xff0c;转世界坐标生成对应的3D文本(TextMesh…...

MySQL内置函数详解

MySQL内置函数详解 1. 字符串函数 1.1 基本字符串处理 -- 字符串长度 SELECT LENGTH(Hello MySQL); -- 返回11-- 字符串大小写转换 SELECT LOWER(HELLO), UPPER(hello); -- 返回 hello, HELLO-- 字符串截取 SELECT SUBSTRING(MySQL Database, 1, 5); -- 返回 MySQL SELEC…...

【网络安全设备系列】9、WAF(Web应用防火墙)

0x00 定义: Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一种设备。 WAF需要部署在Web服务器的前面&#xff0c;串行接入&#xff0c;不仅在硬件性能上要求高&#xff0c;而且不能影响Web服务&#xff0c;所以HA功能、Bypass功能都是必…...

Express 加 sqlite3 写一个简单博客

例图&#xff1a; 搭建 命令&#xff1a; 前提已装好node.js 开始创建项目结构 npm init -y package.json:{"name": "ex01","version": "1.0.0","main": "index.js","scripts": {"test": &q…...

【C++数据结构——图】图的邻接矩阵和邻接表的存储(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 1. 带权有向图 2. 图的邻接矩阵 3. 图的邻接表 测试说明 通关代码 测试结果 任务描述 本关任务&#xff1a;编写一个程序实现图的邻接矩阵和邻接表的存储。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 带权有向图…...

基于单片机的直流稳压电源的设计(论文+源码)

1.系统方案设计 在本次直流稳压电源的设计中&#xff0c;其关键指标如下&#xff1a; 系统输入电压220V交流系统输出直流0到12V可调&#xff0c;步进可以达到0.1V电流最大输出可以到2A具有短路保护功能可以通过液晶或者数码管等显示设备显示当前输出电压 2. 电路图...

Golang开发-案例整理汇总

前言 CSDN的文章缺少一个索引所有文章分类的地方,所以手动创建这么一个文章汇总的地方,方便查找。Golang开发经典案例汇总 GoangWeb开发 GolangWeb开发- net/http模块 GolangWeb开发-好用的HTTP客户端httplib(beego) GolangWeb开发- Gin不使用Nginx部署Vue项目 Golang并发开…...

从入门到精通:Ansible Shell 模块的应用与最佳实践

Ansible是一款强大的自动化运维工具&#xff0c;通过其模块化的设计&#xff0c;可以方便地管理和配置远程主机。作为Ansible的一个常用模块&#xff0c;shell 模块使得我们可以在目标主机上执行复杂的命令或脚本。无论是单一的命令&#xff0c;还是复杂的Shell脚本&#xff0c…...

【Javascript Day1】javascript基础

javascript编程规则 弹窗&#xff08;举例&#xff09; alert("内容")&#xff0c;直接写在控制区生效 三种写法 1、行内js语法 &#xff1a;需要注意引号的问题 <input type"button" value"提示窗" οnclick alert("消息") &…...

dbeaver导入导出数据库(sql文件形式)

目录 前言dbeaver导出数据库dbeaver导入数据库 前言 有时候我们需要复制一份数据库&#xff0c;可以使用dbeaver简单操作&#xff01; dbeaver导出数据库 选中数据库右键->工具->转储数据库 dbeaver导入数据库 选中数据库右键->工具->执行脚本 mysql 默…...

字玩FontPlayer开发笔记6 Tauri2设置菜单

字玩FontPlayer开发笔记6 Tauri2设置菜单 字玩FontPlayer是笔者开源的一款字体设计工具&#xff0c;使用Vue3 ElementUI开发&#xff0c;源代码&#xff1a; github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontplayer 笔记 字玩目…...

大学生HTML5期末作业 Web前端网页制作 html5+css3+js html+css+js网页设计 美食 美食3个页面(带js)

大学生HTML5期末作业 Web前端网页制作 html5css3js htmlcssjs网页设计 美食 美食3个页面(带js) 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行…...

创龙3588——debian根文件系统制作

文章目录 build.sh debian 执行流程build.sh源码流程 30-rootfs.sh源码流程 mk-rootfs-bullseys.sh源码流程 mk-sysroot.sh源码流程 mk-image.sh源码流程 post-build.sh 大致流程系统制作步骤 build.sh debian 执行流程 build.sh 源码 run_hooks() {DIR"$1"shiftf…...

element组件el-select、el-tree-select有值,不渲染lable

大致情况是这个样子的............ 之前vue页面和script脚本是放在一个页面的&#xff0c;今天把页面和脚本拆开了。这一拆不打紧&#xff0c;完犊子&#xff01;它奶奶的el-select、el-tree-select这俩组件不正常显示了&#xff01;&#xff01;&#xff01; 我这个是vite-vue…...

【C++数据结构——线性表】顺序表的基本运算(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 一、线性表的基本概念 二、初始化线性表 三、销毁线性表 四、判定是否为空表 五、求线性表的长度 六、输出线性表 七、求线性表中某个数据元素值 八、按元素值查找 九、插入数据元素 十、删除数据元素 测试说明 通关代码 测…...

2025第1周 | JavaScript中的正则表达式

目录 1. 正则表达式是个什么东东&#xff1f;1.1 怎么定义正则1.2 对象字面量方式1.3 类创建方式 2. 怎么使用2.1 实例方法2.1.1 exec方法2.1.2 test方法 2.2 字符串中的方法2.2.1 match/matchAll2.2.2 replace/replaceAll2.2.3 split2.2.4 search 3. 规则3.1 修饰符3.2 字符类…...

模型 九屏幕分析法

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。九屏幕法&#xff1a;全方位分析问题的系统工具。 1 九屏幕分析法的应用 1.1 新产品研发的市场分析 一家科技公司计划开发一款新型智能手机&#xff0c;为了全面评估市场潜力和风险&#xff0c;他们…...

快速排序(霍尔法),冒泡排序 【C语言】

冒泡排序 效率低&#xff0c;但是稳定性高 代码 // 冒泡排序 void maopao(int a[]);int main() {int a1[10] {34,78,29,46,12,85,63,92,57,31};printf("\n排序前:\n");print(a1);maopao(a2);printf("冒泡排序后:");print(a2); }//冒泡排序 void maopao(…...

国产编辑器EverEdit - 两种删除空白行的方法

1 使用技巧&#xff1a;删除空白行 1.1 应用场景 用户在编辑文档时&#xff0c;可能会遇到很多空白行需要删除的情况&#xff0c;比如从网页上拷贝文字&#xff0c;可能就会存在大量的空白行要删除。 1.2 使用方法 1.2.1 方法1&#xff1a; 使用编辑主菜单 选择主菜单编辑 …...

20241230 AI智能体-用例学习(LlamaIndex/Ollama)

AI小白一枚,入门实验。 1. Pg-Hydra 颠覆数据库体验:Hydra —— 开源的列式存储 PostgreSQL-CSDN博客 git clone https://github.com/hydradatabase/hydra && cd hydra cp .env.example .env docker compose up psql postgres://postgres:hydra@127.0.0.1:5432 do…...

2024年终总结及计划

24年收获不少&#xff0c;早就想总结下&#xff0c;但是有的问题不想去思考&#xff0c;也不想去面对&#xff0c;就晚了几天&#xff0c;趁着加班总结反思下。 一、计划完成情况 1、生活 ①运动&#xff1a;继续坚持每周慢跑15公里&#xff0c;这是必须要做的。另外&#x…...

基于深度学习算法的AI图像视觉检测

基于人工智能和深度学习方法的现代计算机视觉技术在过去10年里取得了显著进展。如今&#xff0c;它被广泛用于图像分类、人脸识别、图像中物体的识别等。那么什么是深度学习&#xff1f;深度学习是如何应用在视觉检测上的呢&#xff1f; 什么是深度学习&#xff1f; 深度学习是…...