【MySQL_04】数据库基本操作(用户管理--配置文件--远程连接--数据库信息查看、创建、删除)
文章目录
- 一、MySQL 用户管理
- 1.1 用户管理
- 1.11 mysql.user表详解
- 1.12 添加用户
- 1.13 修改用户权限
- 1.14 删除用户
- 1.15 密码问题
- 二、MySQL 配置文件
- 2.1 配置文件位置
- 2.2 配置文件结构
- 2.3 常用配置参数
- 三、MySQL远程连接
- 四、数据库的查看、创建、删除
- 4.1 查看数据库
- 4.2 创建、删除数据库
本文远程连接Ubuntu主机上安装的MySQL Server,有些内容前面也讲过,可以看历史文章。
MySQL版本:8.4.4 LTS。
软件使用Navicat
。
历史文章点击👉:SQL
🐈⬛github:https://github.com/mysql
💻官网: https://www.mysql.com
🌏维基百科:https://zh.wikipedia.org/wiki/MySQL
语法简述:SQL语句你看单次意思基本就能明白,语句不区分大小写,但运行时会字段转为大写,大小写看你公司规范。不过表名这种是有大小写的哦。你最好把相关语句的英语单词记住,去查查什么意思,怎么读。
一、MySQL 用户管理
1.1 用户管理
1.11 mysql.user表详解
MySQL的用户信息和权限配置存储在一个特殊的数据库中,这个数据库叫做 mysql
数据库。
mysql 数据库是MySQL系统的核心数据库之一,用于存储与MySQL服务器运行相关的系统信息,其中包括用户账户信息、权限设置、全局变量、插件信息等。
用户信息主要存储在mysql.user
表中。
用户yun是我自己添加的(我创建的是一个特权用户,用于所有权限)。
其他几个是默认的,解释如下:
用户名 | 用途描述 | 权限范围 |
---|---|---|
mysql.infoschema | 用于访问information_schema 数据库,提供数据库元数据的只读视图。 | 仅限访问information_schema ,权限较低,主要用于查询元数据。 |
mysql.session | 供MySQL内部使用,用于插件和内部会话操作。 | 用于服务器内部任务,如管理连接和会话,权限由MySQL内部控制。 |
mysql.sys | 用于sys 数据库,提供性能监控和诊断工具。 | 仅限访问sys 数据库,权限较低,用于性能监控和优化。 |
root | 默认的超级用户,拥有最高权限,用于数据库管理和配置。 | 拥有所有权限,可以执行任何数据库操作,包括创建、删除用户和数据库等。 |
user表共有51列,存储着每个用户的各种信息、权限等内容,本文分为6大类来解释:
(1)用户基本信息
字段名 | 含义 | 字段名 | 含义 |
---|---|---|---|
Host | 用户允许连接的主机地址(如localhost 或% 表示任意主机)。 | User | 用户名,用于标识用户。 |
plugin | 认证插件类型(如caching_sha2_password )。 | authentication_string | 用户的认证凭据(密码哈希值)。 |
root用户最好只运行本机登录,即Host为localhost或者127.0.0.1这些。而特定的用户可以设置为允许登录的ip地址,或者允许任意主机连接。
authentication_string是用户密码哈希值,是由caching_sha2_password这种插件生成的,你无法查看真实密码,只能通过root用户修改密码。
(2)权限相关字段
这些是对用户的权限的比较精细的控制。这些权限默认基本全是拒绝的。
字段名 | 含义 | 字段名 | 含义 |
---|---|---|---|
Select_priv | 是否允许执行SELECT 查询。 | Insert_priv | 是否允许执行INSERT 插入操作。 |
Update_priv | 是否允许执行UPDATE 更新操作。 | Delete_priv | 是否允许执行DELETE 删除操作。 |
Create_priv | 是否允许创建数据库或表。 | Drop_priv | 是否允许删除数据库或表。 |
Reload_priv | 是否允许执行FLUSH 操作(重新加载权限表)。 | Shutdown_priv | 是否允许关闭MySQL服务器。 |
Process_priv | 是否允许查看其他用户的进程(如SHOW PROCESSLIST )。 | File_priv | 是否允许读写文件(如LOAD DATA INFILE )。 |
Grant_priv | 是否允许授予其他用户权限。 | References_priv | 是否允许创建外键约束(已弃用)。 |
Index_priv | 是否允许创建或删除索引。 | Alter_priv | 是否允许修改表结构(如ALTER TABLE )。 |
Show_db_priv | 是否允许查看所有数据库(如SHOW DATABASES )。 | Super_priv | 是否拥有超级权限(如执行管理命令)。 |
Create_tmp_table_priv | 是否允许创建临时表。 | Lock_tables_priv | 是否允许锁定表。 |
Execute_priv | 是否允许执行存储过程或函数。 | Repl_slave_priv | 是否允许作为复制从服务器。 |
Repl_client_priv | 是否允许查询主服务器或从服务器的状态。 | Create_view_priv | 是否允许创建视图。 |
Show_view_priv | 是否允许查看视图定义。 | Create_routine_priv | 是否允许创建存储过程或函数。 |
Alter_routine_priv | 是否允许修改或删除存储过程或函数。 | Create_user_priv | 是否允许创建用户。 |
Event_priv | 是否允许创建、修改或删除事件。 | Trigger_priv | 是否允许创建或删除触发器。 |
Create_tablespace_priv | 是否允许创建表空间。 | Create_role_priv | 是否允许创建角色。 |
Drop_role_priv | 是否允许删除角色。 |
(3)SSL/TLS相关字段
主要用于加密连接。
字段名 | 含义 | 字段名 | 含义 |
---|---|---|---|
ssl_type | SSL连接类型(如ANY 、X509 、SPECIFIED )。 | ssl_cipher | 使用的SSL加密算法。 |
x509_issuer | X509证书的颁发者信息。 | x509_subject | X509证书的主题信息。 |
(4)资源限制相关字段
字段名 | 含义 | 字段名 | 含义 |
---|---|---|---|
max_questions | 每小时允许的最大查询次数。 | max_updates | 每小时允许的最大更新次数。 |
max_connections | 每小时允许的最大连接次数。 | max_user_connections | 用户同时允许的最大连接数。 |
(5)密码管理相关字段
默认都是0,表示无限制。
字段名 | 含义 | 字段名 | 含义 |
---|---|---|---|
password_expired | 密码是否已过期(Y 或N )。 | password_last_changed | 密码最后一次修改的时间。 |
password_lifetime | 密码的有效期(天数)。 | Password_reuse_history | 密码重用前需要更改的次数。 |
Password_reuse_time | 密码重用前需要等待的天数。 | Password_require_current | 修改密码时是否需要提供当前密码(Y 或N )。 |
(6)其他字段
字段名 | 含义 | 字段名 | 含义 |
---|---|---|---|
account_locked | 账户是否被锁定(Y 或N )。 | User_attributes | 用户的附加属性(以JSON格式存储)。 |
1.12 添加用户
执行添加、修改、删除用户等操作,你必须有相关权限才行,root用户有所有权限。权限是对mysql.user这张表的权限。有CREATE USER权限可以创建用户;有UPDATE和ALTER权限可以修改其它用户属性,以此类推。
使用 CREATE USER
语句创建新用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- username:用户名。
- host:允许连接的主机(如 localhost 或 % 表示所有主机)。
- password:你的用户密码。
创建无密码用户:危,不要这么做
CREATE USER 'newuser'@'localhost';
无密码用户,设置密码:
ALTER USER 'newuser'@'localhost' IDENTIFIED BY 'your_password';
1.13 修改用户权限
权限: 即前面讲的51个字段中的权限相关字段,不要_priv
(privilege)后缀,不要下划线,全大写。
如:
- 列名
Select_priv
对应的权限就是:SELECT
; Create_view_priv
就是CREATE VIEW
。
🔹使用 GRANT
语句授予用户权限:
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
- 权限列表:可以是具体的权限(如 SELECT、INSERT、UPDATE 等,多个权限逗号分割),也可以是 ALL PRIVILEGES(表示所有权限)。
- 数据库名.表名:指定权限作用的范围。可以使用 . 表示所有数据库和表,
数据库名.*
表示某个数据库的所有表。 - 用户名@主机名:指定用户和允许连接的主机(如 ‘test_user’@‘localhost’)。
例:
授予用户 test_user 对所有数据库的查询权限:
GRANT SELECT ON *.* TO 'test_user'@'localhost';
🔹使用 REVOKE
语句撤销权限:
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
🟢修改权限后需要刷新权限以生效:
FLUSH PRIVILEGES;
1.14 删除用户
使用 DROP USER
语句删除用户:
DROP USER 'username'@'host';
1.15 密码问题
注意1.12节说的权限问题。
🔹普通用户的密码:
修改密码:没密码就设置,有秘密就是修改
ALTER USER 'username'@'hostname' IDENTIFIED BY 'newpassword';
有密码的可以设置为空,即无密码:
ALTER USER 'username'@'hostname' IDENTIFIED BY '';
记得,修改密码后刷新权限(后面不再重复):
FLUSH PRIVILEGES;
🔹 root 用户的密码 :
(1)修改:跟前面一样
以root用户登录,然后修改即可
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
(2) 忘记密码
: 这个才是常见情况
先停止mysql服务:
sudo systemctl stop mysql
使用 mysqladmin
工具修改密码:
mysqladmin -u root -p password '新密码'
刷新后启动mysql:
sudo systemctl start mysql
或者以跳过权限验证的方式启动mysql(先关闭):sudo mysqld_safe --skip-grant-tables &
登录root:mysql -u root
改密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new_password’;
刷新:FLUSH PRIVILEGES;
退出:EXIT;
停止(停止的是以跳过权限检查方式启动的mysql)和重启:sudo systemctl stop mysql
sudo systemctl start mysql
二、MySQL 配置文件
2.1 配置文件位置
☘️ (1)Windows
配置文件通常位于以下位置之一:
%basedir%\my.ini
%datadir%\my.ini
C:\ProgramData\MySQL\MySQL Server X.Y\my.ini(X.Y 是 MySQL 版本号)
获取:basedir和datadir路径:
登录mysql:此处 大写 -P 3360是我设置的mysql端口,默认是3306,如果是默认只值就不用指定这个参数。
mysql -u root -p -P 3360
执行语句:
SHOW VARIABLES LIKE 'basedir';
SHOW VARIABLES LIKE 'datadir';
如,我的配置文件在datadir下面:使用notepad++
、记事本、vscode等软件即可打开查看
☘️ (2)Linux
命令:
mysql --help | grep 'my.cnf'
有3个位置的配置文件:
-
/etc/my.cnf:系统级别的全局配置文件,优先级最低。
-
/etc/mysql/my.cnf:特定 MySQL 安装的配置文件,优先级中等。
-
~/.my.cnf:用户(Linux 用户)级别的配置文件,优先级最高。
🤭前面的第二个配置文件:在 Debian/Ubuntu
系统中,通常采用分片式配置,即将配置分散到多个文件中,方便管理和维护。主要包括:
/etc/mysql/my.cnf
:主配置文件,通常会包含对其他配置文件的引用。/etc/mysql/mysql.conf.d/
:包含 MySQL 服务器的配置片段。mysqld.cnf
:MySQL 服务器的主要配置。
/etc/mysql/conf.d/
:用户可以添加自定义配置片段。
上图最下面的: /etc/mysql/mysql.conf.d/mysqld.cnf
的作用
mysqld.cnf
文件专门用于配置 MySQL 服务器(mysqld
)的行为。它通常包含以下内容:
- 数据目录(
datadir
) - 绑定地址(
bind-address
) - 端口(
port
) - 日志文件路径(如
log_error
) - 字符集(如
character-set-server
) - 其他性能相关配置(如
innodb_buffer_pool_size
)
2.2 配置文件结构
MySQL 配置文件是一个文本文件,采用 key = value
的格式。
配置文件分为多个部分,每个部分用 [section]
标识。
常见的部分包括:
- [mysqld]: MySQL 服务器的配置。
- [client]: 客户端工具的默认配置(如
mysql
、mysqladmin
)。 - [mysql]:
mysql
命令行客户端的配置。 - [mysqldump]:
mysqldump
工具的配置。 - [server]: 服务器相关的配置(较少使用)。
示例:
[mysqld]
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
port = 3306
user = mysql
max_connections = 200
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set = utf8mb4[mysql]
default-character-set = utf8mb4
2.3 常用配置参数
☘️ 服务器配置 ([mysqld])
-
datadir: 数据目录,存储数据库文件的位置。
datadir = /var/lib/mysql
-
port: MySQL 服务器监听的端口号,默认是
3306
,你修改了这个,连接数据库的时候就要 -P 参数指定端口;或者在[client]里面吧端口也设置为相同的(指的是你用来连接的电脑的配置文件里面的[client])。port = 3306
-
bind-address: 服务器绑定的 IP 地址。
0.0.0.0
表示监听所有网络接口。如果只允许几个ip,用逗号隔开。bind-address = 0.0.0.0
-
max_connections: 最大连接数。
max_connections = 200
-
character-set-server: 服务器默认字符集。
character-set-server = utf8mb4
-
collation-server: 服务器默认排序规则。
collation-server = utf8mb4_unicode_ci
-
innodb_buffer_pool_size: InnoDB 缓冲池大小,建议设置为系统内存的 50%-70%。
innodb_buffer_pool_size = 1G
-
log_error: 错误日志文件路径。
log_error = /var/log/mysql/error.log
-
slow_query_log: 是否启用慢查询日志。
slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2
☘️ 客户端配置 ([client])
-
port: 客户端连接时使用的默认端口。
port = 3306
-
socket: 客户端连接时使用的 Unix 套接字文件路径。
socket = /var/lib/mysql/mysql.sock
-
default-character-set: 客户端默认字符集。
default-character-set = utf8mb4
☘️ 备份配置 ([mysqldump])
-
max_allowed_packet: 备份时允许的最大数据包大小。
max_allowed_packet = 64M
🟢修改配置文件后,需要重启 MySQL 服务以使更改生效:
sudo systemctl restart mysql
如果配置文件有语法错误,MySQL 可能无法启动。可以通过以下命令检查配置文件的正确性:
mysqld --validate-config
某些参数可以在 MySQL 运行时动态调整,无需重启服务,仅限此次运行期间有效例如:
SET GLOBAL max_connections = 300;
三、MySQL远程连接
现在其实没啥好讲的了。
- 用户的Host要允许远程,如 %,而不是localhost;
- 配置文件里面的
:bind-address = 0.0.0.0
- 服务器放行mysql使用的端口。
本系列的第二篇文章也有讲解。
四、数据库的查看、创建、删除
4.1 查看数据库
MySQL数据库连接成功之后,就可以使用SQL语句来查看当前所有存在的数据库,显示的一些默认的数据库是在 MySQL安装完成之后,在其目录 data 自动创建的几个必要的数据库,输入SQL语句如下:
SHOW DATABASES;
输出:
这个命令起到一些小作用,可以帮助你查看创建的数据库是否创建成功,选择你创建的数据库等操作。
当然使用Navicat等软件直接就看到数据库了。
这些数据库我在第二篇讲过了:
切换到目标数据库:
USE 数据库名;
查看当前数据库的表:
SHOW TABLES;
🟢使用 SHOW TABLE STATUS
查看数据库中所有表的摘要信息:
SHOW TABLE STATUS FROM 数据库名;
4.2 创建、删除数据库
创建:
CREATE DATABASE test;
删除:
DROP DATABASE test;
创建或删除前可以先判断是否存在:
CREATE DATABASE if not exists test;
DROP DATABASE IF EXISTS test;
相关文章:
【MySQL_04】数据库基本操作(用户管理--配置文件--远程连接--数据库信息查看、创建、删除)
文章目录 一、MySQL 用户管理1.1 用户管理1.11 mysql.user表详解1.12 添加用户1.13 修改用户权限1.14 删除用户1.15 密码问题 二、MySQL 配置文件2.1 配置文件位置2.2 配置文件结构2.3 常用配置参数 三、MySQL远程连接四、数据库的查看、创建、删除4.1 查看数据库4.2 创建、删除…...
设计模式之建造者模式:原理、实现与应用
引言 建造者模式(Builder Pattern)是一种创建型设计模式,它通过将复杂对象的构建过程分解为多个简单的步骤,使得对象的创建更加灵活和可维护。建造者模式特别适用于构建具有多个组成部分的复杂对象。本文将深入探讨建造者模式的原…...
2025最新群智能优化算法:山羊优化算法(Goat Optimization Algorithm, GOA)求解23个经典函数测试集,MATLAB
一、山羊优化算法 山羊优化算法(Goat Optimization Algorithm, GOA)是2025年提出的一种新型生物启发式元启发式算法,灵感来源于山羊在恶劣和资源有限环境中的适应性行为。该算法旨在通过模拟山羊的觅食策略、移动模式和躲避寄生虫的能力&…...
Apache Log4j 2
目录 1. Apache Log4j 2 简介 1.1 什么是Log4j 2? 1.2 Log4j 2 的主要特性 2. Log4j 2 的核心组件 2.1 Logger 2.2 Appender 2.3 Layout 2.4 Filter 2.5 Configuration 3. Log4j 2 的配置 4. Log4j 2 的使用示例 4.1 Maven 依赖 4.2 示例代码 4.3 输出…...
ArcGIS Pro字段编号相关代码
一、引言 在地理信息系统(GIS)的数据管理与分析中,字段操作是不可或缺的一环。 SHP文件作为常见的地理数据存储格式,其字段的灵活运用对于数据的组织、展示和分析具有重要意义。 在实际工作中,常常需要对字段进行编…...
ubuntu22.04机器人开发环境配置
1. ros2环境配置(humble) #配置源 # https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update && sudo apt install curl -y# …...
万字深度剖析——JS数据结构(上)
数组本质是对象,键就是索引,值就是元素。 push /unshift 在数组最后/最前添加 pop /shift 把数组最后/最前的元素删除,返回的是被删除的元素 splice(0,2,5)从第0给位置开始删除2个元素,并添加一个元素 数组自带的…...
golang dlv调试工具
golang dlv调试工具 在goland2022.2版本 中调试go程序报错 WARNING: undefined behavior - version of Delve is too old for Go version 1.20.7 (maximum supported version 1.19) 即使你go install了新的dlv也无济于事 分析得出Goland实际使用的是 Goland安装目录下dlv 例…...
【算法 C/C++】二维前缀和
2025 - 03 - 08 - 第 70 篇 Author: 郑龙浩 / 仟濹 【二维前缀和】 文章目录 前缀和与差分 - 我的博客前缀和(二维)1 基本介绍(1) **sum[i][j] 表示什么???**(2) **前缀和怎么求???计算 sum[i][j]…...
如何使用postman来测试接口
一、postman的介绍与下载 可参考: https://blog.csdn.net/freeking101/article/details/80774271 二、api获取网站 阿里云API应用市场 地址:云市场_镜像市场_软件商店_建站软件_服务器软件_API接口_应用市场 - 阿里云 三、具体测试过程 可模拟浏览…...
olmOCR:高效精准的 PDF 文本提取工具
在日常的工作和学习中,是否经常被 PDF 文本提取问题困扰?例如: 想从学术论文 PDF 中提取关键信息,却发现传统 OCR 工具识别不准确或文本格式混乱?需要快速提取商务合同 PDF 中的条款内容,却因工具不给力而…...
Vue项目通过内嵌iframe访问另一个vue页面,获取token适配后端鉴权(以内嵌若依项目举例)
1. 改造子Vue项目进行适配(ruoyi举例) (1) 在路由文件添加需要被外链的vue页面配置 // 若依项目的话是 router/index.js文件 {path: /contrast,component: () > import(/views/contrast/index),hidden: true },(2) 开放白名单 // 若依项目的话是 permission.js 文件 cons…...
请谈谈 HTTP 中的重定向,如何处理 301 和 302 重定向?
HTTP重定向深度解析:301与302的正确使用姿势 一、重定向本质解析 重定向就像快递员送快递时发现地址变更,新地址会写在包裹单的"改派地址"栏。 浏览器收到3xx状态码时,会自动前往Location头指定的新地址。 常用状态码对比&…...
隧道定向号角喇叭为隧道安全保驾护航
隧道广播系统的搭建:科技赋能,打造安全高效的隧道环境。隧道作为现代交通网络的重要组成部分,其安全管理和信息传递的效率直接关系到整个交通系统的运行。然而,隧道环境的特殊性——封闭、狭窄、回声干扰多,使得传统的…...
RuleOS:区块链开发的“破局者”,开启Web3新纪元
RuleOS:区块链开发的“破冰船”,驶向Web3的星辰大海 在区块链技术的浩瀚宇宙中,一群勇敢的探索者正驾驶着一艘名为RuleOS的“破冰船”,冲破传统开发的冰层,驶向Web3的星辰大海。这艘船,正以一种前所未有的姿…...
C#程序结构及基本组成说明
C# 程序的结构主要由以下几个部分组成,以下是对其结构的详细说明和示例: 1. 基本组成部分 命名空间 (Namespace) 用于组织代码,避免命名冲突。通过 using 引入其他命名空间。 using System; // 引入 System 命名空间类 (Class) C# 是面向对象的语言,所有代码必须定义在类或…...
Django与数据库
我叫补三补四,很高兴见到大家,欢迎一起学习交流和进步 今天来讲一讲alpha策略制定后的测试问题 mysql配置 Django模型体现了面向对象的编程技术,是一种面向对象的编程语言和不兼容类型能相互转化的编程技术,这种技术也叫ORM&#…...
力扣热题 100:二叉树专题进阶题解析(后7道)
系列文章目录 力扣热题 100:哈希专题三道题详细解析(JAVA) 力扣热题 100:双指针专题四道题详细解析(JAVA) 力扣热题 100:滑动窗口专题两道题详细解析(JAVA) 力扣热题 100:子串专题三道题详细解析(JAVA) 力…...
Linux——system V共享内存
共享内存区是最快的IPC(进程内通信)形式,不再通过执行进入内核的系统调用来传递彼此的数据 1.共享内存的原理 IPC通信的本质是让不同的进程先看到同一份资源,然后再进行通信,所以想要通过共享内存进行通信,那么第一步一定是让两个…...
【C语言】指针篇
目录 C 语言指针概述指针的声明和初始化声明指针初始化指针 指针的操作解引用操作指针算术运算 指针的用途动态内存分配作为函数参数 指针与数组数组名作为指针通过指针访问数组元素指针算术和数组数组作为函数参数指针数组和数组指针指针数组数组指针 函数指针函数指针的定义和…...
XGBoost介绍
XGBoost:是eXtreme Gradient Boosting(极端梯度提升)的缩写,是一种强大的集成学习(ensemble learning)算法,旨在提高效率、速度和高性能。XGBoost是梯度提升(Gradient Boosting)的优化实现。集成学习将多个弱模型组合起来,形成一个…...
力扣:找到一个数字的 K 美丽值(C++)
一个整数 num 的 k 美丽值定义为 num 中符合以下条件的 子字符串 数目: 子字符串长度为 k 。子字符串能整除 num 。 给你整数 num 和 k ,请你返回 num 的 k 美丽值。 注意: 允许有 前缀 0 。0 不能整除任何值。 一个 子字符串 是一个字符串里…...
数据结构:有序表的合并
前文介绍了《有序表的插入》,本文介绍有序表的合并。这两种对有序表的操作,是数据结构中常考的内容,特别是在 408 考卷中,在算法设计的题目中,有可能会考查对有序表的操作。那么,这两篇文章中的方法就是能够…...
AI写论文提示词指令大全,快速写论文
目录 一、十大学术写作提示词1、研究主题2、研究问题3、论文架构4、学术论证5、文献关键要素6、专业文本可读性转换7、学术语言规范化8、提高语言准确性9、多维度、深层论证10、优化文本结构 二、快速写论文提示词1、确认研究选题2、整理相关资料3、快速完成论文大纲4、整合文献…...
物联网IoT系列之MQTT协议基础知识
文章目录 物联网IoT系列之MQTT协议基础知识物联网IoT是什么?什么是MQTT?为什么说MQTT是适用于物联网的协议?MQTT工作原理核心组件核心机制 MQTT工作流程1. 建立连接2. 发布和订阅3. 消息确认4. 断开连接 MQTT工作流程图MQTT在物联网中的应用 …...
【从零开始学习计算机科学】计算机组成原理(七)存储器与存储器系统
【从零开始学习计算机科学】计算机组成原理(七)存储器与存储器系统 存储器存储器相关概念存储器分类存储器系统存储器性能指标存储器层次概述程序访问的局部性原理SRAM存储器存储器的读写周期DRAM存储器DRAM控制器高性能的主存储器存储器扩展只读存储器ROM光擦可编程只读存储…...
ctf-WEB: 关于 GHCTF Message in a Bottle plus 与 Message in a Bottle 的非官方wp解法
Message in a Bottle from bottle import Bottle, request, template, runapp Bottle()# 存储留言的列表 messages [] def handle_message(message):message_items "".join([f"""<div class"message-card"><div class"me…...
Java集合_八股场景题
Java集合 在Java开发中,集合框架是面试和实际开发中非常重要的内容。以下是一些常见的Java集合八股文问题和场景题,以及详细答案和示例代码。 1. Java集合框架的结构是什么? 答案: Java集合框架主要分为三大接口:Col…...
Scaled_dot_product_attention(SDPA)使用详解
在学习huggingFace的Transformer库时,我们不可避免会遇到scaled_dot_product_attention(SDPA)这个函数,它被用来加速大模型的Attention计算,本文就详细介绍一下它的使用方法,核心内容主要参考了torch.nn.functional中该函数的注释…...
SpringBoot(一)--搭建架构5种方法
目录 一、⭐Idea从spring官网下载打开 2021版本idea 1.打开创建项目 2.修改pom.xml文件里的版本号 2017版本idea 二、从spring官网下载再用idea打开 三、Idea从阿里云的官网下载打开 编辑 四、Maven项目改造成springboot项目 五、从阿里云官网下载再用idea打开 Spri…...
初识大模型——大语言模型 LLMBook 学习(一)
1. 大模型发展历程 🔹 1. 早期阶段(1950s - 1990s):基于规则和统计的方法 代表技术: 1950s-1960s:规则驱动的语言处理 早期的 NLP 主要依赖 基于规则的系统,如 Noam Chomsky 提出的 生成语法&…...
Array and string offset access syntax with curly braces is deprecated
警告信息 “Array and string offset access syntax with curly braces is deprecated” 是 PHP 中的一个弃用警告(Deprecation Notice),表明在 PHP 中使用花括号 {} 来访问数组或字符串的偏移量已经被标记为过时。 背景 在 PHP 的早期版本…...
27. Harmonyos Next仿uv-ui 组件NumberBox 步进器组件禁用状态
温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 文章目录 1. 组件介绍2. 效果展示3. 禁用状态设置3.1 整体禁用3.2 输入框禁用3.3 长按禁用 4. 完整示例代码5. 知识点讲解5.1 禁用状态属性5.2 禁用…...
Java高频面试之集合-08
hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:详细说说CopyOnWriteArrayList CopyOnWriteArrayList 详解 CopyOnWriteArrayList 是 Java 并发包(java.util…...
做到哪一步才算精通SQL
做到哪一步才算精通SQL-Structured Query Language 数据定义语言 DDL for StructCREATE:用来创建数据库、表、索引等对象ALTER:用来修改已存在的数据库对象DROP:用来删除整个数据库或者数据库中的表TRUNCATE:用来删除表中所有的行…...
SpringAI介绍及本地模型使用方法
博客原文地址 前言 Spring在Java语言中一直稳居高位,与AI的洪流碰撞后也产生了一些有趣的”化学反应“,当然你要非要说碰撞属于物理反应也可以, 在经历了一系列复杂的反应方程后,Spring家族的新成员——SpringAI,就…...
空指针异常的触发
面向对象分析: 当你要吃饭,饭是对象,提供吃饭这个功能,所以饭为null时,你去调吃饭这个功能,就是去操作饭这个抽象模型,但这个模型是null,就是空指针异常了,但如果有了饭…...
尚硅谷爬虫note15n
1. 多条管道 多条管道开启(2步): (1)定义管道类 (2)在settings中开启管道 在pipelines中: import urllib.request # 多条管道开启 #(1)定义管道类 #(2)在setti…...
基于SSM+Vue的汽车维修保养预约系统+LW示例
1.项目介绍 系统角色:管理员、员工、用户功能模块:用户管理、员工管理、汽车类型管理、项目类型管理、维修/预约订单管理、系统管理、公告管理等技术选型:SSM,vue(后端管理web),Layuiÿ…...
【商城实战(13)】购物车价格与数量的奥秘
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配…...
在线json转ArkTs-Harmonyos
轻松将 JSON 数据转换为类型安全的 ArkTs 接口。快速准确地生成代码,提升开发效率,告别手动编写,让您的开发流程更加流畅! gotool...
Cannot resolve symbol ‘view‘ Androidstudio报错解决办法
报错原因 出现 Cannot resolve symbol view 错误是因为代码中的 view 变量未正确定义或不在当前作用域内。以下是常见场景和解决方法: 场景 1:在 点击事件监听器 中获取 view 如果代码在 OnClickListener 的 onClick 方法中,view 是方法的参…...
三级缓存架构
三级缓存架构是一种通过分层缓存设计来优化系统性能、降低数据库负载、提高数据访问效率的解决方案,尤其适用于高并发、高吞吐量的业务场景(如电商、社交平台、实时推荐等)。其核心思想是通过多级缓存逐层过滤请求,减少对底层存储…...
webshell一些上传心得
我们以upload-labs为基础 一、前端拦截: 如第一关 工作方式: 直接在前端拦截 绕过方式: 因为没有限制后端,所有可以用bs 绕过前端修改格式即可 将需要上传的php文件改成jpg格式 使用burp suite 拦截上传后,使用re…...
doris:阿里云 MaxCompute
MaxCompute 是阿里云上的企业级 SaaS(Software as a Service)模式云数据仓库。 什么是 MaxCompute 连接 MaxCompute 示例 -- 1. 创建Catalog。 CREATE CATALOG mc PROPERTIES ("type" "max_compute","mc.default.projec…...
MyBatis-Plus 分页查询接口返回值问题剖析
在使用 MyBatis-Plus 进行分页查询时,很多开发者会遇到一个常见的问题:当分页查询接口返回值定义为 Page<T> 时,执行查询会抛出异常;而将返回值修改为 IPage<T> 时,分页查询却能正常工作。本文将从 MyBatis-Plus 的分页机制入手,详细分析这一问题的根源,并提…...
【面试】框架
框架 1、介绍一下Spring 的 IOC2、将一个类声明为 Bean 的注解有哪些3、Bean 的作用域有哪些4、Spring 框架中的 Bean 是线程安全的吗5、Spring 容器对象的懒加载6、Spring 容器中的 bean 生命周期7、谈谈自己对于 Spring DI 的了解8、注入 Bean 的注解有哪些9、Spring Boot 如…...
MWC 2025 | 紫光展锐联合移远通信推出全面支持R16特性的5G模组RG620UA-EU
2025年世界移动通信大会(MWC 2025)期间,紫光展锐联合移远通信,正式发布了全面支持5G R16特性的模组RG620UA-EU,以强大的灵活性和便捷性赋能产业。 展锐芯加持,关键性能优异 RG620UA-EU模组基于紫光展锐V62…...
《苍穹外卖》SpringBoot后端开发项目重点知识整理(DAY1 to DAY3)
目录 一、在本地部署并启动Nginx服务1. 解压Nginx压缩包2. 启动Nginx服务3. 验证Nginx是否启动成功: 二、导入接口文档1. 黑马程序员提供的YApi平台2. YApi Pro平台3. 推荐工具:Apifox 三、Swagger1. 常用注解1.1 Api与ApiModel1.2 ApiModelProperty与Ap…...
Mysql内置函数
日期函数: 例如: select current_date();---打印日期 select current_time()----打印时间 select current_timestamp();打印时间戳 select now(); ----日期时间 select date(‘2020-10-01 00:00:00’); ----提取日期进行打印: 也可以配合…...