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

Mysql常见问题处理集锦

Mysql常见问题处理集锦

    • root用户密码忘记,重置的操作(windows上的操作)
    • MySQL报错:ERROR 1118 (42000): Row size too large. 或者 Row size too large (> 8126).
      • 场景:
      • 报错原因
      • 解决办法
    • 详解
      • 行大小限制示例:
          • 内容来源于网络,主要用于知识分享,若侵权,请联系博主,会及时删除

root用户密码忘记,重置的操作(windows上的操作)

1: 通过任务管理器或者服务管理,关掉mysqld(服务进程)
2: 通过命令行+特殊参数开启

mysqld mysqld --
defaults-file="D:\ProgramFiles\mysql\MySQLServer5.7Data\my.ini" --skip-grant-tables

3: 此时,mysqld服务进程已经打开。并且不需要权限检查
4: 另启动一个客户端进行

mysql -uroot //无密码登陆服务器。

5: 修改权限表

 use mysql; update user set authentication_string=password('新密码') where user='root' and Host='localhost'; flush privileges; 

6: 通过任务管理器,关掉mysqld服务进程。
7: 再次通过服务管理,打开mysql服务。
8: 即可用修改后的新密码登陆。

MySQL报错:ERROR 1118 (42000): Row size too large. 或者 Row size too large (> 8126).

场景:

今天拿到一个建语句时,大概二百多个字段,然后大部分类型是 string 的,要求建 MySQL 的表。首先将 string 替换为 varchar(xx),然后执行了一下语句,报错如下所示:

ERROR 1118 (42000): Row size too large. The maximum 
row size for the used table type, not counting BLOBs,is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs.

报错原因

MySQL 建表时有一个单行最大限制长度限定:一张表中所有字段设置的字节数总和不大于 65535 字节。

注意点一:单个字段大小超过 65535 转换为 TEXT。
注意点二:其余字段总和不超过 65535 字节(不包括 BLOB/TEXT)。
注意点三:数据库使用 UTF-8 编码,一个字符 = 三个字节大小(使用编码不同,字节数大小略有不同)。
报错举例:数据库存在 10 个 varchar 字段,每个大小为 3000 则数据库单行目前计算长度为 3000 * 10 * 3 = 90000 > 65535 ,则建表时就会报错。

解决办法

将数据库表大字段类型设置为 TEXT,或者将部分可以减小长度的长度调小至总和小于 65535。

调整完之后,执行建表语句,又报如下错误:

1. Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.(低版本报错)
2. Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. (新版本报错)

上面两个错误信息,前者基本出现在 ROW_FORMAT <> DYNAMIC 或者较早版本的情况,在其中 BLOB 需要存储 768 字节在行内部。对整个行 size 贡献较大。

后者基本对于较新的版本,因为默认的 ROW_FORMAT = DYNAMIC,在其中,一个 TEXT 或者 BLOB 字段对行 size 的贡献在 9-12 个字节之间。

对于第一种情况,可以设置 innodb_file_per_table = 1,innodb_default_row_format = dynamic,又因为 dynamic 要求 innodb_file_format 必须为 Barracuda,所以一般还要加上 innodb_file_format = Barracuda 设置。innodb_default_row_format = dynamic 可以在创建表的时候动态指定。当然也可以按照提示那样的,设置 ROW_FORMAT =COMPRESSED,这个对于只读场景用处比较大,如果用于读写负载,那比较不好。

在数据库执行如下语句:

SHOW GLOBAL VARIABLES LIKE '%innodb_file%';+--------------------------+-----------+
| Variable_name            | Value     |
+--------------------------+-----------+
| innodb_file_format       | Barracuda |
| innodb_file_format_check | ON        |
| innodb_file_format_max   | Barracuda |
| innodb_file_per_table	   | ON        |
+--------------------------+-----------+

确保 innodb_file_format 使用的是 Barracuda,innodb_file_per_table 使用的是 ON,如果不是执行以下语句(不用重启 MySQL):

SET GLOBAL innodb_file_format = barracuda;
SET GLOBAL innodb_file_per_table = ON;

或者,在配置文件中添加使用独立表空间的配置:innodb_file_per_table=1
修改配置文件 my.cnf(需要重启 MySQL):

innodb_file_per_table = ON;
innodb_file_format = barracuda;

或者,建表语句设置 ROW_FORMAT =COMPRESSED:

create table_name (
...
)
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FROMAT=COMPRESSED COMMENT='表注释';

如果上面的方法仍然解决不了问题,那还有其它办法:

1、关掉 innodb_strict_mode,这个选项是在创建表的时候检查行大小,如果确定实际存储的字段没有这么多,可以关掉。但是问题是如果确实有这么多内容,插入的时候会报错。
查看:

SHOW VARIABLES LIKE '%innodb_strict_mode%';+--------------------------+-----------+
| Variable_name            | Value     |
+--------------------------+-----------+
| innodb_strict_mode	   | ON        |
+--------------------------+-----------+

修改:

SET SESSION innodb_strict_mode = OFF
或者
SET innodb_strict_mode = OFF

以上 OFF 也可以用 0 代替,ON 也可以用 1 代替 。

2、将 innodb_page_size 调整成 64K,这样,64K 的 page 即使需要容纳2行数据的话,每行也可以最大达到 32K(实际达不到,因为 header 和 footer 需要空间)。但是这个最好把现有的 MySQL 备份出来,然后按照新的 page size 重新初始化,再导入备份,保证整个库都使用统一的 page size 大小,以免出现稀奇古怪的问题。

set global innodb_page_size = 65536

3、可以看到上面的提示 In current row format, BLOB prefix of 0 bytes is stored inline,把较长的字段都转成 TEXT 或者 BLOB 存储。

以上步骤可以一个一个试,基本就可以解决自己的问题了。

详解

ERROR1118 的报错信息分为两种:

1. ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs.

一行最大记录长度是 65535(定义到这个长度也会报错,行本身维护也会占用字节),建议使用 TEXT 或 BLOBs 类型。

2. Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.

一条记录太长,超过了 8126 字节,建议部分列使用 TEXT 或 BLOB 类型。

看到这两个报错信息,有些人可能就会有疑问,感觉描述的有些冲突,一个说一条记录最大长度不超过 65535 字节,一个说长度不能超过 8126 字节。那么到底哪个是正确的的呢?
先看下官方文档的描述:

【The MySQL maximum row size limit of 65,535 bytes is demonstrated in the following InnoDB and MyISAM examples. The limit is enforced regardless of storage engine, even though the storage engine may be capable of supporting larger rows.

在 MySQL 数据库中一条记录的最大长度是 65535 字节,在下面的 InnoDB 和 MyISAM 示例中做了演示。尽管存储引擎可能能够支持更大的行,但无论使用何种存储引擎,都会强制执行该限制。

InnoDB restricts row size (for data stored locally within the database page) to slightly less than half a database page for 4KB, 8KB, 16KB, and 32KB innodb_page_size settings, and to slightly less than 16KB for 64KB pages.

nnoDB 限制一条记录的大小(对于本地存储在数据库页面中的数据),对于 4KB、8KB、16KB 和 32KB 的 innodb_page_size 设置为略小于数据库页面的一半,对于 64KB 的页面则略小于 16KB。

小结:
一条记录最大长度 65535 字节是 MySQL 数据库 Server 层面的限制,默认情况下,InnoDB 页面大小是 16KB,所以 一条记录在页面中的存储长度不能超过 8126 字节,这是 InnoDB 存储引擎的限制。

这里可能会有些疑问,平常创建 varchar(10000) 类型字段,已经超过 8126 了,但也没报这个错误,这个和 InnoDB 的存储一条记录的格式有关系,官方文档对存储格式的说明:

Fixed-length columns greater than or equal to 768 bytes are encoded as variable-length columns, which can be stored off-page】

当列的长度超过 768 字节时,多余的内容会存储到一个溢出页上,compact/dynamic 格式在这方面是一样的。
也就是说创建了 varhcar(10000) 类型字段,同时写入到 10000 字节的数据,其实只有 768 个字节存储在数据页面上,其余的字节存储在溢出页面上。

为什么Innodb存储引擎,每个存储页面上,最少要有两条记录呢?

截图来自于【MySQL运维内参】

在这里插入图片描述

这是假如每个页面只能存储一条记录的情况下,表内存储了【1,2,3,4】4 条记录 B+ 树结构图,如果一个页面的数据量不能存储 2 条记录,则这个 B+ 树就不能称为 B+ 树,因为它起不到一个索引的作用,其实就是一个双向链表,但比双向链表占用的空间大很多。
如果不能够存储 2 条记录,那么这个 B+ 树是没有意义的,形不成一个有效的索引。

总结:
创建表和写入数据时有两个限制,一个是 Server 层面的限制,一条记录最大长度不能超过 65535(真实创建的记录长度到不了 65535,因为记录本身也需要一些字节去维护),另一个是 InnoDB 层面的限制,一条记录存储在页面中的长度不能够超过 8126 字节。

行大小限制示例:

1、在 MySQL 数据库中一条记录的最大长度是 65535 字节,在下面的 InnoDB 和 MyISAM 示例中做了演示。尽管存储引擎可能能够支持更大的行,但无论使用何种存储引擎,都会强制执行该限制。

创建一个表 t,记录长度之合超过 65535。默认字符集是 latin1,一个字符占一个字节,如果用的 utf8,则一个字符占用 3 个字节。要在定义的 varchar 字段类型上乘以 3 才是占用字节数(不同字符集所占字节数可能不同)。

InnoDB 示例:

mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),f VARCHAR(10000), g VARCHAR(6000)) ENGINE=InnoDB CHARACTER SET latin1;ERROR 1118 (42000): Row size too large. The maximum row size for the used
table type, not counting BLOBs, is 65535. This includes storage overhead,
check the manual. You have to change some columns to TEXT or BLOBs

或者 MYISAM

mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;ERROR 1118 (42000): Row size too large. The maximum row size for the used
table type, not counting BLOBs, is 65535. This includes storage overhead,
check the manual. You have to change some columns to TEXT or BLOBs

在下面的 MyISAM 示例中,将列更改为 TEXT 避免了 65535 字节的行大小限制,所以就操作成功了,因为 BLOB 和 TEXT 列只贡献了 9-12 个字节的行大小(6 * 10000 + 9 ~ 6 * 10000 + 12)。

mysql> CREATE TABLE t2 (a VARCHAR(10000), b VARCHAR(10000),c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),f VARCHAR(10000), g TEXT(6000)) ENGINE=MyISAM CHARACTER SET latin1;Query OK, 0 rows affected (0.02 sec)

对于下面 InnoDB 表,操作成功,是因为将列更改为 TEXT 可避免 MySQL中 65535 字节的行大小限制,而 InnoDB 变长列的分页存储可避免 InnoDB 行大小限制(< 8126 的限制)。

看 t2 表,varchar 类型是 10000,记录最长是 5 * 10000 = 50000 字节,再加上TEXT 字段对行 size 贡献的 9-12 个字节,没有达到 server 层面的限制。
对于可变长字段,数值超过 768 个字节的,字段的前 768 字节存储在 InnoDB 页面上,其余的数据存储在溢出页面上。t2 表一共 7 个字段,每个字段只有前边的 768 字节存储在 InnoDB 页面上,7 * 768 = 5376 字节,没有达到 InnoDB 存储引擎 8126 的限制,不会报错,所以创建成功。

mysql> CREATE TABLE t2 (a VARCHAR(10000), b VARCHAR(10000),c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;Query OK, 0 rows affected (0.02 sec)

可变长度列的存储包括长度字节(值的长度),它被计入行大小。例如,VARCHAR(255)CHARACTER SET utf8mb3 列需要两个字节来存储值的长度,因此每个值最多占用 767 个字节。如下示例:

mysql> CREATE TABLE t3 (c1 VARCHAR(32765) NOT NULL, c2 VARCHAR(32766) NOT NULL) ENGINE = InnoDB CHARACTER SET latin1;Query OK, 0 rows affected (0.02 sec)

上面创建表 t3 的语句成功,因为列需要 32765 + 2 字节和 32766 + 2 字节,这在 65535 字节的最大行大小范围内。

mysql> CREATE TABLE t3 (c1 VARCHAR(65535) NOT NULL) ENGINE = InnoDB CHARACTER SET latin1;ERROR 1118 (42000): Row size too large. The maximum row size for the used
table type, not counting BLOBs, is 65535. This includes storage overhead,
check the manual. You have to change some columns to TEXT or BLOBs

上面创建表 t3 的语句失败,因为尽管列长度在 65535 字节的最大长度内,但需要另外两个字节来记录长度,这会导致行大小超过 65535 个字节。

2、InnoDB 限制一条记录的大小(对于本地存储在数据库页面中的数据),对于 4KB、8KB、16KB 和 32KB 的 innodb_page_size 设置为略小于数据库页面的一半,对于 64KB 的页面则略小于 16KB。

示例:

创建表 t4,使用 char(255) 定长字符串类型,char 类型无论写入的内容多少(当然,一定要小于等于 255),在实际存储时都会占用 255 个字节。一共33字段,每个字段定长 255 字节,33 * 255 = 8415,每个记录最大长度是 8145 字节,是 Server 层的限制之内,所以没报 65535 的错误,但一条记录在 InnoDB 页面存储时超过了 8126 限制,所以 InnoDB 存储引擎报错了。如下所示:

mysql> CREATE TABLE t4 (c1 CHAR(255),c2 CHAR(255),c3 CHAR(255),c4 CHAR(255),c5 CHAR(255),c6 CHAR(255),c7 CHAR(255),c8 CHAR(255),c9 CHAR(255),c10 CHAR(255),c11 CHAR(255),c12 CHAR(255),c13 CHAR(255),c14 CHAR(255),c15 CHAR(255),c16 CHAR(255),c17 CHAR(255),c18 CHAR(255),c19 CHAR(255),c20 CHAR(255),c21 CHAR(255),c22 CHAR(255),c23 CHAR(255),c24 CHAR(255),c25 CHAR(255),c26 CHAR(255),c27 CHAR(255),c28 CHAR(255),c29 CHAR(255),c30 CHAR(255),c31 CHAR(255),c32 CHAR(255),c33 CHAR(255)) ENGINE=InnoDB ROW_FORMAT=COMPACT DEFAULT CHARSET latin1;ERROR 1118 (42000): Row size too large (> 8126). Changing some columns to TEXT or BLOB or using
ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768
bytes is stored inline.

创建表 t4 的语句失败,因为定义的列超过了 16KB InnoDB 页面的行大小限制。

修改 t4 表为 varhcar(255),可变长字段试下,varchar 字段类型在实际存储到页面的时候,并不以定长存储,而是写入多少字节,存储多少字节。如下所示,可以看到,这样创建表是没有问题,如果写入字节数小于 8126 字节也没有问题,但是如果写入字节数超过 8126 了,由于 InnoDB 存储引擎的限制,还是会报错的。

mysql>  CREATE TABLE t4 (c1 VARCHAR(255),c2 VARCHAR(255),c3 VARCHAR(255),c4 VARCHAR(255),c5 VARCHAR(255),c6 VARCHAR(255),c7 VARCHAR(255),c8 VARCHAR(255),c9 VARCHAR(255),c10 VARCHAR(255),c11 VARCHAR(255),c12 VARCHAR(255),c13 VARCHAR(255),c14 VARCHAR(255),c15 VARCHAR(255),c16 VARCHAR(255),c17 VARCHAR(255),c18 VARCHAR(255),c19 VARCHAR(255),c20 VARCHAR(255),c21 VARCHAR(255),c22 VARCHAR(255),c23 VARCHAR(255),c24 VARCHAR(255),c25 VARCHAR(255),c26 VARCHAR(255),c27 VARCHAR(255),c28 VARCHAR(255),c29 VARCHAR(255),c30 VARCHAR(255),c31 VARCHAR(255),c32 VARCHAR(255),c33 VARCHAR(255)) ENGINE=InnoDB ROW_FORMAT=COMPACT DEFAULT CHARSET latin1;Query OK, 0 rows affected (0.01 sec)

写入数据长度小于 8126 的场景,240 * 33 = 7920,可以成功。如下所示:

mysql> insert into t4 (c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c30,c31,c32,c33) values(repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240), repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240), repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240), repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240),repeat('a',240))Query OK, 1 row affected (0.01 sec)

写入数据长度大于 8126 的场景,255 * 33 = 8415,直接报错。如下所示:

mysql> insert into t4 (c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c30,c31,c32,c33) values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255), repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255), repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255), repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255))ERROR 1118 (42000): Row size too large (> 8126). Changing some columns to TEXT or BLOB or using
ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768
bytes is stored inline.
mysql> 
内容来源于网络,主要用于知识分享,若侵权,请联系博主,会及时删除

相关文章:

Mysql常见问题处理集锦

Mysql常见问题处理集锦 root用户密码忘记&#xff0c;重置的操作(windows上的操作)MySQL报错&#xff1a;ERROR 1118 (42000): Row size too large. 或者 Row size too large (&#xff1e; 8126).场景&#xff1a;报错原因解决办法 详解行大小限制示例&#xff1a;内容来源于网…...

Android SystemUI——CarSystemBar添加到窗口(十)

上一篇文章我们看到了车载状态栏 CarSystemBar 视图的创建流程&#xff0c;这里我们继续分析将车载状态栏添加到 Windows 窗口中。 一、添加状态栏到窗口 前面我们已经分析了构建视图对象容器和构建视图对象内容&#xff0c;接下来我们继续分析 attachNavBarWindows() 方法将视…...

《重生到现代之从零开始的C++生活》—— 类和对象1

类 我嘞个豆&#xff0c;类可是太重要了&#xff0c;简直是重中之重 class为定义类的关键字&#xff0c;stack为类的名字&#xff0c;{}为类的主题 class stack {void add (int a,int b){return ab;}//类的方法&#xff0c;成员函数int _c;int _d;//类的属性&#xff0c;成…...

《FMambaIR:一种基于混合状态空间模型和频域的方法用于图像恢复》学习笔记

paper&#xff1a;(PDF) FMambaIR: A Hybrid State Space Model and Frequency Domain for Image Restoration 目录 摘要 一、引言 二、相关工作 1、图像恢复 2、频率学习 3、状态空间模型&#xff08;SSM&#xff09; 三、框架 1、基本知识 2、整体框架 3、F-Mamba…...

每日十题八股-2025年1月18日

1.服务器处理并发请求有哪几种方式&#xff1f; 2.讲一下io多路复用 3.select、poll、epoll 的区别是什么&#xff1f; 4.epoll 的 边缘触发和水平触发有什么区别&#xff1f; 5.redis&#xff0c;nginx&#xff0c;netty 是依赖什么做的这么高性能&#xff1f; 6.零拷贝是什么…...

海康威视摄像头RTSP使用nginx推流到服务器直播教程

思路&#xff1a; 之前2020年在本科的时候&#xff0c;由于项目的需求需要将海康威视的摄像头使用推流服务器到网页进行直播。这里将自己半个月琢磨出来的步骤给大家发一些。切勿转载&#xff01;&#xff01;&#xff01;&#xff01; 使用网络摄像头中的rtsp协议---------通…...

搭建一个基于Spring Boot的书籍学习平台

搭建一个基于Spring Boot的书籍学习平台可以涵盖多个功能模块&#xff0c;例如用户管理、书籍管理、学习进度跟踪、笔记管理、评论和评分等。以下是一个简化的步骤指南&#xff0c;帮助你快速搭建一个基础的书籍学习平台。 — 1. 项目初始化 使用 Spring Initializr 生成一个…...

Go 语言的slice是如何扩容的?

Go 语言中的 slice 是一种灵活、动态的视图&#xff0c;是对底层数组的抽象。当对 slice 进行追加元素等操作导致其长度超过容量时&#xff0c;就会发生扩容。 一、扩容的基本原理 当 slice 需要扩容时&#xff0c;Go 语言会根据当前的容量来确定新的容量。一般来说&#xff…...

Apache Hive--排序函数解析

在大数据处理与分析中&#xff0c;Apache Hive是一个至关重要的数据仓库工具。其丰富的函数库为数据处理提供了诸多便利&#xff0c;排序函数便是其中一类非常实用的工具。通过排序函数&#xff0c;我们能够在查询结果集中为每一行数据分配一个排名值&#xff0c;这对于数据分析…...

Java 接口安全指南

Java 接口安全指南 概述 在现代 Web 应用中&#xff0c;接口&#xff08;API&#xff09;是前后端交互的核心。然而&#xff0c;接口的安全性常常被忽视&#xff0c;导致数据泄露、未授权访问等安全问题。本文将详细介绍 Java 中如何保障接口安全&#xff0c;涵盖以下内容&am…...

合合信息名片全能王上架原生鸿蒙应用市场,成为首批数字名片类应用

长期以来&#xff0c;名片都是企业商务沟通的重要工具。随着企业数字化转型&#xff0c;相较于传统的纸质名片&#xff0c;数字名片对于企业成员拓展业务、获取商机、提升企业形象等方面发挥着重要作用。近期&#xff0c;合合信息旗下名片全能王正式上线原生鸿蒙应用市场&#…...

38.【3】CTFHUB web sql 报错注入

进入靶场 按照提示输入1 显示查询正确 既然是报错注入&#xff0c;先判断整形还是字符型注入 先输入1 and 11 再输入1 and 12 都显示查询正确&#xff0c;可知此为字符串型注入&#xff0c;不是数字型注入 然后就不会了 求助AI和其他wp 由以上2张搜索结果知updatexml是适用…...

RC2在线加密工具

RC2是由著名密码学家Ron Rivest设计的一种传统对称分组加密算法&#xff0c;它可作为DES算法的建议替代算法。RC2是一种分组加密算法&#xff0c;RC2的密钥长度可变&#xff0c;可以从8字节到128字节&#xff0c;安全性选择更加灵活。 开发调试上&#xff0c;有时候需要进行对…...

NVIDIA 下 基于Ubuntun20.04下 使用脚本安装 ros2-foxy 和 使用docker安装 ros2-foxy

一、前提介绍&#xff1a; 本文主要采用两种方式在NVIDIA 下基于 Ubuntun20.04安装 ros2-foxy。 使用环境&#xff1a; NVIDIA 为 Jetson 系列下 Jetson Xavier NX&#xff1b; Ubuntun版本&#xff1a;20.04 二、安装方法&#xff1a; 1、使用脚本编译方式&#xff1a; 使…...

STL容器-- list的模拟实现(附源码)

STL容器-- list的模拟实现&#xff08;附源码&#xff09; List的实现主要考察我们对list这一容器的理解&#xff0c;和代码的编写能力&#xff0c;通过上节对list容器的使用&#xff0c;我们对list容器已经有了一些基本的了解&#xff0c;接下来就让我们来实现一些list容器常见…...

python——句柄

一、概念 句柄指的是操作系统为了标识和访问对象而提供的一个标识符&#xff0c;在操作系统中&#xff0c;每个对象都有一个唯一的句柄&#xff0c;通过句柄可以访问对象的属性和方法。例如文件、进程、窗口等都有句柄。在编程中&#xff0c;可以通过句柄来操作这些对象&#x…...

KubeSphere 与 Pig 微服务平台的整合与优化:全流程容器化部署实践

一、前言 近年来,为了满足越来越复杂的业务需求,我们从传统单体架构系统升级为微服务架构,就是把一个大型应用程序分割成可以独立部署的小型服务,每个服务之间都是松耦合的,通过 RPC 或者是 Rest 协议来进行通信,可以按照业务领域来划分成独立的单元。但是微服务系统相对…...

ESP8266-01S、手机、STM32连接

1、ESP8266-01S的工作原理 1.1、AP和STA ESP8266-01S为WIFI的透传模块&#xff0c;主要模式如下图&#xff1a; 上节说到&#xff0c;我们需要用到AT固件进行局域网应用&#xff08;ESP8266连接的STM32和手机进行连接&#xff09;。 ESP8266为一个WiFi透传模块&#xff0c;和…...

Web开发 -前端部分-CSS-2

一 长度单位 代码实现&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…...

【QT用户登录与界面跳转】

【QT用户登录与界面跳转】 1.前言2. 项目设置3.设计登录界面3.1 login.pro参数3.2 界面设置3.2.1 登录界面3.2.2 串口主界面 4. 实现登录逻辑5.串口界面6.测试功能7.总结 1.前言 在Qt应用程序开发中&#xff0c;实现用户登录及界面跳转功能是构建交互式应用的重要步骤之一。下…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...