postgreSQL日常维护
目录
登录数据库
数据库操作列出列出库
创建库
删除库
切换库
查看库的大小
数据表操作
列出表
创建表
复制表
删除表
查看表的结构
模式操作命令
创建模式
默认模式
删除模式
查看所有模式
在指定模式中创建表
切换当前模式
查看当前所在schema
查看搜索路径(Search Path)
PostgreSQL的模式隔离性
数据库操作
备份与恢复
SQL转储
从转储中恢复
使用PG_dumpall
远程连接
配置访问权限
验证远程连接
重置密码
登录数据库
Pgsql登录时,必须使用postgres用户,
登录后的命令提示符为"postgres=#"
postgres表示你当前所在的库
[root@bogon^]# su-postgres
[postgres@bogon ^]$ /usr/local/pgsql/bin/psql
psql (16.3)
Type "help" for help.
postgres=#
数据库操作
方法一
postgres=#\1
在PostgreSQL的交互式终端psql中,"\"开头的命令称为元命令(类似
MySQL的SHOW语句),用于快速管理数据库
方法二
postgres=# \l+
的输出比\l多了Size,Tablespace和Description列
+:扩展输出,显示更多字段或详细信息
方法三
使用SQL语句
postgres=# SELECT datname FROM pg_database;
pg_database是系统表:它存储了PostgreSQL实例中所有数据库的元信息(如
数据库名称、所有者、编码等)。属于系统目录(SystemCatalog):类似MySQL
的information_schema,但PostgreSQL的系统目录更底层且直接存储在
pg_catalog模式中。pg_database是系统目录表,所以无论当前连接到哪个数据库,该表始终可见
系统表默认属于pg_catalog模式,而pg_catalog始终位于搜索路径
(search_path)的首位。因此,查询时无需显式指定模式(如pg_catalog.pg_database)。
创建库
postgres=# create database mydb;
CREATE DATABASE
删除库
postgres=# drop database mydb;
DROP DATABASE
切换库
postgres=# \c_mydb
You are now connected to database "mydb" as user "postgres".
mydb=#
查看库的大小
函数以字节为单位返回数据库的大小
postgres=# SELECT pg_database_size('mydb');
pg_database_size
----------------
7594499
(1行记录)
pg_size_pretty()
postgres=# SELECT pg_size_pretty (pg_database_size('mydb'));
pg_size_pretty
---------------
7417 kB
(1行记录)
数据表操作
列出表
常用方法
mydb=#\dt;
列出表(显示search_path中模式里的表,默认public)3
mydb=# \d
列出表,视图和序列
mydb=# \d+
mydb=#\dt my_schema.*
列出指定模式下的表(例如 my_schema)
mydb=#\dt *.*
查看当前数据库的所有表(包括系统表)
mydb=#SELECT * FROM pg_tables WHERE schemaname = 'public';
使用SLQL方式列出当前数据库中public模式下的所有表及其详细信息pg_tables是视图:属于pg_catalog模式,但它是基于pg_class和
pg namespace的逻辑视图,并非物理表。无需切换数据库,直接查询
pg_catalog.pg_tables即可获取当前数据库的表信息
创建表
PostgreSQL支持标准的SQL类型int、smallint、real、douuble precision.
char(N)、varchar(N)、date、time、time、timestamp和interval,还j支持其他的通
用功能的类型和丰富的几何类型。PostgreSQL中可以定制任意数量的用户定义
数据类型。因而类型名并不是语法关键字,除了SQL标准要求支持的特例外。
postgres=# create table test(id int, name char(10)age int);
CREATE TABLE
复制表
要将已有的table_name表复制为新表 new_table,包括表结构和数据,请
使用以下语句
CREATE TABLE new table AS TABLE table name;
例如
postgres=# CREATE TABLE test2 AS TABLE test;
SELECT 0
postgres=# \dt
删除表
postgres=# drop table_test2;
查看表的结构
postgres=\d test:
模式操作命令
在PostgreSQL中,模式(Schema)
是一个逻辑容器,用于组织和管理数
据库对象(如表、视图、函数、索引等)。它类似于文件系统中的文件牛夹,帮助
你在同一个数据库中分类存储不同的对象,避免命名冲突,并实现权限隔离
创建模式
在当前库postgres中创建名为hr的模式
postgres=# CREATE SCHEMA hr:
CREATE SCHEMA
默认模式
PostgreSQL每个数据库都有一个默认模式public。
如果创建对象(表、视图等)时不指定模式,默认会放在 publiic模式中。
通过search_path参数可以设置模式的搜索优先级(类似PAT环境变量):
postgres=# SHOW search_path;
search_path用于控制对象解析顺序,避免每次查询都要写模式名
$user,public表示优先查找当前用户同名模式,再找public模式。
删除模式
删除空模式
postgres=# DROP SCHEMA hr;
DROP SCHEMA
强制删除模式以及所有对象
postgres=# DROP SCHEMA hr CASCADE;
DROP SCHEMA
查看所有模式
元命令列出当前库中所有模式
postgres=# \dn
SQL,查询,列出当前库中所有模式
postgres=# SELECT schema name FROM informmation schema.schemata:
在指定模式中创建表
在postgres库中的hr模式下创建一个名为empllovees的库
postgres=#CREATE TABLE hr.employees (id SERIAL PRIIMARY KEY, name TEXT);
切换当前模式
切换模式也就是调整search_path的搜索范围切换到单个schema
SET search_path TO new_schema;
切换到多个schema(按优先级顺序)
SET search_path TO hr, public;
表述优先搜索hr模式,其次public
查看当前所在schema
postgres=# SELECT_current_schema();
查看搜索路径(Search Path)
postgres=# SHOW search_path;
PostgreSQL的模式隔离性
模式隔离的主要特性
命名空间隔离
模式的关键作用是提供独立的命名空间。这意味着在同一个数据库中,不同模式可以存在同名的对象,而且彼此不会产生冲突
CREATE SCHEMA schema_a;
CREATE SCHEMA schema_b;CREATE TABLE schema_a.users (id INT, name TEXT);
CREATE TABLE schema_b.users (id INT, email TEXT); -- 不会冲突,因为分属不同模式
权限控制隔离
可以针对模式单独设置权限,以此限制用户对特定模式及其包含对象的访问。
-- 只允许用户user1访问schema_a
GRANT USAGE ON SCHEMA schema_a TO user1;
GRANT SELECT ON ALL TABLES IN SCHEMA schema_a TO user1;
逻辑结构分离
借助模式,能够按照业务功能、团队或者应用模块对数据库对象进行分组
mydatabase/
├── public -- 默认模式
├── finance -- 财务相关表和函数
├── marketing -- 营销数据
└── audit -- 审计日志
数据库操作
添加数据
在postgres库,新建test表
postgres=# create table test(id int, name char(10),ageint);
CREATE TABLE
postgres=#insert into test values(1, zhangsan',18);
INSERT 0 1
查询数据
postgres=# select * from test;
修改数据
postgres=# update test set age=20 where id=1;
UPDATE 1
postgres=# select * from test;
删除数据
postgres=# delete from test where id=l;
DELETE 1
postgres=# select * from test;
备份与恢复
PostgreSQL数据库应当被定期地备份。虽然过程相当简单,但清晰地理解其
底层技术和假设是非常重要的。
有三种不同的基本方法来备份PostgreSQL数据:
SQL转储
文件系统级备份
连续归档
每一种都有其优缺点,我们主要以SQL转储为主。
SQL转储
SQL 转储是将数据库中的数据和结构导出为文本文件(通常包含 SQL 语句)的过程,主要用于数据备份、迁移、共享或灾难恢复。转储文件可以包含表结构、数据、存储过程、视图等数据库对象的定义,通过执行这些 SQL 语句,可在其他数据库环境中重建相同的数据库结构和数据
SQL 转储的核心作用
-
数据备份
- 定期转储数据库,防止数据丢失(如硬件故障、误操作等)。
- 示例:每天凌晨自动转储生产数据库,保存到异地服务器。
-
数据库迁移
- 将数据从一个数据库服务器(如 MySQL)迁移到另一个(如 PostgreSQL),需先转储为通用 SQL 格式,再调整语法差异。
-
环境同步
- 在开发、测试环境中复制生产数据,用于调试或测试新功能。
-
数据共享
- 向第三方提供数据库结构和部分数据(如脱敏后的测试数据)。
从转储中恢复
其中dumpfile就是pg_dump命令的输出文件。这条命令不会创建数据库
dbname,你必须在执行psql前自己从template0创建(例如,用命令createdb
-T template0 dbname)。psql支持类似pg_dump的选项用以指定要连接的数
据库服务器和要使用的用户名。参阅psql的手册获取更多信息。非文本文件转
储可以使用pg_restore工具来恢复。
在开始恢复之前,转储库中对象的拥有者以及在其上被授予了权限的用户必
须已经存在。如果它们不存在,那么恢复过程将无法将对象创建成具有原来的所
属关系以及权限(有时候这就是你所需要的,但通常不是)。
默认情况下,psql脚本在遇到一个SQL错误后会继续执行。你也许希望在遇
到一个SQL错误后让psql退出,那么可以设置ON_ERROR_STOP变量来运行psql,
这将使psql在遇到SQL错误后退出并返回状态3:不管怎样,你将只能得到一个部分恢复的数据库。作为另一种中选择,你可以
指定让整个恢复作为一个单独的事务运行,这样恢复要么完全完成要么完全回滚。
这种模式可以通过向psql传递-l或-single-transaction命令行选项来指定。
在使用这种模式时,注意即使是很小的一个错误也会导致运行了数小时的恢复被
回滚。但是,这仍然比在一个部分恢复后手工清理复杂的数据库要更好
使用PG_dumpall
pg_dump每次只转储一个数据库,而且它不会转储关于角色或表空间(因为
它们是集簇范围的)的信息。为了支持方便地转储一个数据库集的全部内容
提供了pg_dumpall程序。pg_dumpall备份一个给定集簇中的每一个数据库,并
且也保留了集簇范围的数据,如角色和表空间定义。该命令的基本用法是
pg_dumpall > dumpfile
存储的结果可以使用psql恢复
psql -f dumpfile postgres
实际上,你可以指定恢复到任何已有数据库名,但是如果你正在将转储载
入到一个空集簇中则通常要用(postgres)。在恢复一个pg_dumpall转储时常
常需要具有数据库超级用户访问权限,因为它需要恢复角色和表空间信息。如果
你在使用表空间,请确保转储中的表空间路径适合于新的安装。
pg_dumpall工作时会发出命令重新创建角色、表空间和空数据库,扫接着
为每一个数据库pg_dump。这意味着每个数据库自身是一致的,但是不同数据库
的快照并不同步。集簇范围的数据可以使用pg_dumpall的-globals-only选项来单独转
储。如果在单个数据库上运行pg_dump命令,上述做法对于完全备份整个集等是
必需的。
远程连接
修改postgreSQL监听地址
默认PostgreSQL监听的地址是127.0.0.1,别的机器无法远程连接上,所以
需要调整,修改postgresql.conf文件。
修改pgsql配置文件
vim /usr/local/pgsql/data/postgresql.cnf
listen_addresses='*' what IP address(es) to listen on;
取消注释将=后面改为*
[root@localhost~]# systemctl restart postgresql
配置访问权限
默认是只能本地访问PostgreSQL的,我们需要在pg_hba.conf里面配置找到IPv4 local connections这一行,在这一行下面添加
[root@localhost ^]#vim /usr/local/pgsql/data/pg_hbaconf
host all all 0.0.0.0/0 trust
host:这指定了连接类型。host表示该规则适用于通过过TCP/IP进行的远程
连接。如果是本地连接,通常会使用local。
all:这定义了哪些数据库可以接受这个规则。all表示这个规则适用于所有
数据库。你也可以指定特定的数据库名,例如mydatabase。
>all:这定义了哪些用户可以接受这个规则。all表示这个规则适用于所有用
户。你也可以指定特定的用户名,例如myuser。
0.0.0.0/0:这定义了哪些客户端 IP地址或IP地址范围可以接受这个规
则。0.0.0.0/0 是一个特殊的CIDR表示法,它表示任何 IP 地地址(即没有IP地
址限制)。你也可以指定具体的IP地址,如192.168.1.100,或者IP地址范
围,如192.168.1.0/24。trust:这定义了认证方法。trust表示不需要密码或其他任何形式的认证,
客户端可以直接连接。这通常只在本地或受信任的网络环境中使用,因为它允许
任何人无需认证即可访问数据库。请注意,使用 trust认证正方法允许任何 IP 地
址连接到你的数据库,而不需要任何认证,这是非常不安全的。这通常只在开发
或测试环境中使用,并且应该始终确保数据库服务器不暴露在不受信任的网络中。
在生产环境中,你应该使用更安全的认证方法,如md5或2
password(对于较新
版本的PostgreSQL,建议使用 scram-sha-256)
如果不是设置的trust,而是选择了md5或password之类的,需要有密码才
行,配置PostgreSQL密码流程如下
postgres=# ALTER_USER postgres WITH PASSWORD
123456'
ALTER ROLE
[root@localhost ^]# systemctl start postgresql
验证远程连接
使用其它主机远程连接本机数据库,设置的是trust,无密码,可以直接登录
[postgres@localhost ^]$ psql -h 192.168.10.102
psql (16.3, server 15.12)
Type "help" for help.
postgres=#
如果设置的是md5或passwd之类的需要密码才行
[postgres@localhost ~]$ psql -h 192.168.10.102
Password for user postgres:
psql (16.3, server 15.12)
Type "help" for help.
postgres=#
重置密码
在PostgreSQL中如果密码忘记了怎么重置密码备份配置文件对pghba.conf文件,进行备份
[root@localhost~]# cp /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf
修改配置文件修改配置文件以信任本地连接不需要密码。将配置文件中的scram-sha-256或
者md5修改为trust
[root@localhost~]# vim /var/lib/pgsql/data/postgresql.conf
# IPv4 local connections:
host all all 127.00.0.1/32 trust
host all all 0.0.0.0 md5
[root@localhost ^]# systemctl restart postgresql
修改密码登录数据库修改密码,密码自定义
postgres=# ALTER USER postgres WITH PASSWORD
new_password
ALTER ROLE
恢复pg_hba.conf配置文件
将postgresql.confbak文件的内容覆盖pg_hba.conf,重启!PostgreSQL数据
库服务器,重新登陆时,如果提示输入密码,则输入刚才修改的密码即可
相关文章:
postgreSQL日常维护
目录 登录数据库 数据库操作列出列出库 创建库 删除库 切换库 查看库的大小 数据表操作 列出表 创建表 复制表 删除表 查看表的结构 模式操作命令 创建模式 默认模式 删除模式 查看所有模式 在指定模式中创建表 切换当前模式 查看当前所在schema 查看搜索…...
数据直观分析与可视化
数据直观分析与可视化 一、数据的直观分析核心价值 数据的直观分析旨在通过视觉化的方式,帮助人们更直观、更快速地理解数据的特征和模式,从而发现趋势、异常值、分布情况以及变量之间的关系,为决策提供支持。 数据可视化与信息图形、信息可…...
BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds
BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds 研究动机解决方案技术路线踏脚点奖励双Critic进行稀疏奖励学习两阶段学习地形感知运动马尔可夫决策空间Sim2Real 附录实验结果 BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds 研究动机…...
Spark大数据分与实践笔记(第五章 HBase分布式数据库-02)
文章目录 每日一句正能量第五章 HBase分布式数据库章节概要5.2 HBase的集群部署 每日一句正能量 人有三样东西是无法隐瞒的,咳嗽,穷困和爱,你想隐瞒越欲盖弥彰。人有三样东西是不该挥霍的,身体,金钱和爱,你…...
【面经分享】微派网络一面
HashMap 如何解决 哈希冲突? HashMap 是拉链法解决。 发生哈希冲突时,同一个槽位上,会形成一个链表。 一个槽位上的节点达到树化的阈值后,会树化为红黑树。 拉链法:哈希冲突时,同一个哈希槽拉成一个链表…...
【寻找Linux的奥秘】第七章:虚拟地址空间
前言 本专题将基于Linux操作系统来带领大家学习操作系统方面的知识以及学习使用Linux操作系统。上一章我们简单认识了环境变量,本章将讲解操作系统中另一个重要的概念——程序地址空间。 1. 初步认识 之前在我们学习C语言和C时我们知道,在我们的程序中不…...
网络安全-等级保护(等保) 2-0 等级保护制度现行技术标准
################################################################################ 第二章:现行等保标准要求,通过表格方式详细拆分了等保的相关要求。 GB 17859-1999 计算机信息系统 安全保护等级划分准则【现行】 GB/T22240-2020 《信息安全技术…...
Linux:进程信号---信号的保存与处理
文章目录 1. 信号的保存1.1 信号的状态管理 2. 信号的处理2.1 用户态与内核态2.2 信号处理和捕捉的内核原理2.3 sigaction函数 3. 可重入函数4. Volatile5. SIGCHLD信号 序:在上一章中,我们对信号的概念及其识别的底层原理有了一定认识,也知道…...
【Linux】C语言模拟实现shell命令行(程序替换原理)
目录 一、自动化构建工具(makefile) 二、输出提示符 三、获取用户输入的数据 四、将用户输入的指令字符串进行分割: 五、执行用户输入的命令 六、发现cd命令用不了(内建命令) 原因在于: 七、处理内…...
WordPress Madara插件存在文件包含漏洞(CVE-2025-4524)
免责声明 本文档所述漏洞详情及复现方法仅限用于合法授权的安全研究和学术教育用途。任何个人或组织不得利用本文内容从事未经许可的渗透测试、网络攻击或其他违法行为。使用者应确保其行为符合相关法律法规,并取得目标系统的明确授权。 对于因不当使用本文信息而造成的任何直…...
【Java】泛型在 Java 中是怎样实现的?
先说结论 , Java 的泛型是伪泛型 , 在运行期间不存在泛型的概念 , 泛型在 Java 中是 编译检查 运行强转 实现的 泛型是指 允许在定义类 , 接口和方法时使用的类型参数 , 使得代码可以在不指定具体类型的情况下操作不同的数据类型 , 从而实现类型安全的代码复用 的语言机制 . …...
Lambda表达式的高级用法
今天来分享下Java的Lambda表达式,以及它的高级用法。 使用它可以提高代码的简洁度,使代码更优雅。 一、什么是lambda表达式 Lambda 表达式是 Java 8 引入的特性,用于简化匿名内部类的语法,使代码更简洁,尤其在处理函…...
ctfhub技能书http协议
http://challenge-ffe8afcf1a75b867.sandbox.ctfhub.com:10800/index.php curl -v -X CTFHUB http://challenge-ffe8afcf1a75b867.sandbox.ctfhub.com:10800/index.php curl:用于发送 HTTP 请求的命令行工具。 -v(--verbose):开启…...
面试题 - 微服务相关的经典问题(33道)
1.什么是微服务? 微服务(Microservices)是一种软件架构风格,将一个大型应用程序划分为一组小型、自治且松耦合的服务。每个微服务负责执行特定的业务功能,并通过轻量级通信机制(如HTTP)相互协作…...
在C#中对List<T>实现多属性排序
本文介绍了四种实现多级排序的方法:1. LINQ链式调用:使用OrderBy和ThenBy实现多级排序,直观易读,适合动态需求,返回新列表。2. 自定义比较器(IComparer):适用于复杂或高频排序&#…...
C++初阶-vector的模拟实现3
目录 1.预备知识:initializer_list 1.1初步了解 1.2关于initializer_list的deepseek的回答 C中的 std::initializer_list 主要特性 常见用途 1. 接受列表的构造函数和函数 2. 基于范围的 for 循环 重要注意事项 实现示例 2.vector::vector(initializer_li…...
详解鸿蒙仓颉开发语言中的日志打印问题
一门新的开发语言在诞生初期,由于它本身的特性和使用人数暂时较少,会容易出现一些大家不太容易理解的问题,或者说有一些坑。今天就详细分享一下仓颉开发语言中的日志打印相关内容,带大家踩一踩坑。 AppLog 在新创建的项目中&…...
dify基于文本模型实现微调Fine-tune语料构造工作流
主要是分为5个部分。分别是:开始、文档提取器、代码执行、LLM大语言模型、结束 5个部分 打开dify,创建一个空白页面-选择工作流,我们给应用起个名字。 创建完成后,进入工作流画布界面 开始 在开始节点中新建2个输入参数。1个是用…...
手机充电协议
1、手机快充 公有:PD、QC(高通骁龙芯片) 私有: 华为:FCP(fast charge protocol) 、SCP( super charge protocol) 、 小米: Mi Turbo Charge oppo:VOOC/SuperVOOC vivo:FlashCharge、…...
HarmonyOS 应用开发,如何引入 Golang 编译的第三方 SO 库
本指南基于笔者临时修复的 ohos_golang_go 项目fork,解决HO 应用导入 cgo编译产物时的 crash 问题。 1. 下载 ohos_golang_go git clone https://gitcode.com/deslord/ohos_golang_go.git📌 该仓库为笔者临时修复版本,修复了 CGO 编译模式下…...
polarctf-web-[某函数的复仇]
考点: 匿名构造函数(create_function) 题目来源:polarctf-web-[某函数的复仇] 解题: 代码审计: <?phphighlight_file(__FILE__);//flag:/flagif(isset($_POST[shaw])){$shaw $_POST[shaw];$root $_GET[root];if(preg_mat…...
Node.js Express 项目现代化打包部署全指南
Node.js Express 项目现代化打包部署全指南 一、项目准备阶段 1.1 依赖管理优化 # 生产依赖安装(示例) npm install express mongoose dotenv compression helmet# 开发依赖安装 npm install nodemon eslint types/node --save-dev1.2 环境变量配置 /…...
华为云Flexus+DeepSeek征文|Flexus云服务器Dify-LLM资源部署极致体验Agent
前引:重磅来袭!本次以DeepSeek-V3/R1商用大模型和Dify-LLM应用平台一键部署为核心,专为新手打造“开箱即用”的AI开发体验。无论你是想快速搭建企业级AI应用,还是探索大模型落地的无限可能,只需跟随小编实现三步走&…...
Java详解LeetCode 热题 100(18):LeetCode 73. 矩阵置零(Set Matrix Zeroes)详解
文章目录 1. 题目描述2. 理解题目3. 解法一:使用两个额外数组标记法3.1 思路3.2 Java代码实现3.3 代码详解3.4 复杂度分析3.5 适用场景 4. 解法二:使用矩阵的第一行和第一列作为标记4.1 思路4.2 Java代码实现4.3 代码详解4.4 复杂度分析4.5 适用场景 5. …...
MySQL刷题 Day08
LC 1341电影评分 本题思路简单,但一不注意就错了 : 不难想到用union,写出如下代码: (select u.name results from MovieRating mr left join Users u on mr.user_id u.user_id group by mr.user_id order by count(mr.user_id…...
linux查看本机服务器的外网IP命令
在 Linux 中查看本机服务器的外网 IP(公网 IP)可以通过以下几种方法: 1. 使用 curl 查询外部服务(推荐) curl ifconfig.me或: curl icanhazip.com或: curl ipinfo.io/ip这些服务会返回你的公…...
DVWA-XSS
DOM low 这是一个下拉框的形式,但是如果我们不让他等于English呢,换成js代码呢? <script>alert(xss);</script> Medium <script> 标签,但仅使用简单的字符串匹配进行替换(比如移除 "<scr…...
第15天-NumPy科学计算实战:从基础到图像处理
一、NumPy核心优势 高效数组运算:矢量操作比纯Python快10-100倍 广播机制:不同形状数组的算术运算 内存优化:连续内存块存储,支持大数据处理 丰富API:线性代数、傅里叶变换、随机数生成等 二、环境准备 pip install numpy matplotlib 三、基础操作演示 1. 创建数组 im…...
Spring Boot + +小程序, 快速开发零工市场小程序
现在零工经济发展的越来越好,不止是很多人想要利用空余时间找零工赚外快,也有很多企业有灵活用工的需求,根据这样的需求,我们利用Spring Boot 和小程序,快速开发出了零工市场小程序。 利用 Spring Boot 开发零工市场小…...
Vue 3.0中核心的Composition API
在当今快速发展的前端生态系统中,Vue 3.0以其革命性的Composition API重新定义了组件开发的范式。作为Vue框架的一次重大进化,Composition API不仅解决了Options API在复杂组件中面临的逻辑复用和组织难题,更为开发者提供了更灵活、更强大的代…...
洛谷B3840 [GESP202306 二级] 找素数
题目描述 小明刚刚学习了素数的概念:如果一个大于 1 的正整数,除了 1 和它自身外,不能被其他正整数整除,则这个正整数是素数。现在,小明想找到两个正整数 A 和 B 之间(包括 A 和 B)有多少个素数…...
Axure设计之带分页的穿梭框原型
穿梭框(Transfer)是一种常见且实用的交互组件,广泛应用于需要批量选择或分配数据的场景。 一、应用场景 其典型应用场景包括: 权限管理系统:批量分配用户角色或系统权限数据筛选工具:在大数据集中选择特…...
VsCode开发环境之Node.js离线部署
1.下载node部署文件 地址为:CNPM Binaries Mirror 2.下载后解压 3.验证版本 4.配置环境变量 5.外网寻找一个对应项目的npm文件--node_modules 6.node_modules文件夹复制到node.js的路径下 7.接着就可以正常运行了。...
补充Depends 和 request: Request 依赖注入用法的注意事项
不要在非路由函数(如类的 __init__ 方法或普通模块函数)中直接使用 Depends() 或 request。 Depends 和 request: Request 是 FastAPI 提供的依赖注入机制的一部分,仅适用于FastAPI 路由函数或由 FastAPI 调用的依赖函数中。在类初始化、模块…...
uniapp-商城-64-后台 商品列表(商品修改---页面跳转,深浅copy应用,递归调用等)
完成了商品的添加和展示,下面的文字将继续进行商品页面的处理,主要为商品信息的修改的页面以及后天逻辑的处理。 本文主要介绍了商品信息修改页面的实现过程。首先,页面布局包括编辑和删除功能,未来还可添加上架和下架按钮。通过c…...
【MySQL】联合查询(上)
目录 一. 什么是联合查询 二. 笛卡尔积 三. 内连接查询 示例演示 四. 外连接 示例演示 五. 自连接 自连接 示例演示 一. 什么是联合查询 在之前学习的增删改查中都是对于单表进行查询,但是因为在数据库设计时需要遵循范式的要求,数据就会被拆分到多…...
Model 是 Agent 的大脑(以camel为例)
Model 是 Agent 的大脑,负责处理所有输入和输出数据。通过有效调用不同的模型,智能体可以根据任务需求执行文本分析、图像识别和复杂推理等操作。CAMEL 提供了一系列标准和可定制的接口,并与各种组件无缝集成,以赋能大语言模型&am…...
Linux条件变量
在 Linux 系统中,pthread_cond_init() 函数和条件变量(Condition Variable)是多线程编程中用于线程同步的核心机制。它们通过协调线程间的等待与通知逻辑,解决共享资源的竞争问题。以下从功能、工作机制、使用场景和注意事项等方面…...
k8s-NetworkPolicy
在 Kubernetes 中,NetworkPolicy 是一种资源对象,用于定义 Pod 之间的网络通信策略。它允许你控制哪些 Pod 可以相互通信,以及如何通信。通过使用 NetworkPolicy,可以实现更细粒度的网络访问控制,增强集群的安全性。 1…...
什么是“架构孤岛”?如何识别与整合?为什么现代企业在追求敏捷开发的同时,反而更容易陷入架构孤岛陷阱?
在现代信息技术飞速发展的时代,系统架构日益复杂,组织在构建与演进其信息系统时,面临着前所未有的挑战。然而,就在不断追求敏捷性、可扩展性与数字化创新的过程中,一个被广泛忽视却日益严峻的问题悄然浮现——“架构孤岛”。它们像岛屿一样,彼此孤立,通信不畅,数据难以…...
nfs存储IO等待,导致k8s业务系统卡慢问题处理
注:服务器配置:64C,128G,麒麟v10系统,系统磁盘使用空间(5T)均低于50%,存储磁盘iops约为800左右 发现业务系统卡慢,使用top 命令查看.系统负载较高长期保持在60以上,发现wa值的指标参数长期高于15,返现CPU用于写入磁盘IO等待的时间较高,系统的磁盘I/O压力较大. 配合开发查看日志…...
如何使用两块硬盘作为 Ubuntu24 的系统盘,实现坏掉一块不影响系统运行。
最近我想使用Ubuntu组一个NAS系统,想实现系统盘冗余,各位大佬可以给点建议吗。 Deep Seek 为了实现两块硬盘作为 Ubuntu 24 系统盘的冗余配置(RAID 1),确保一块硬盘损坏时系统仍可运行,以下是详细步骤&am…...
电子电气架构 --- 细化造车阶段流程
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
物联网之使用Vertx实现UDP最佳实践【响应式】
小伙伴们,你们好呀,我是老寇,跟我一起学习使用Vertx实现UDP-Server 实现UDP【响应式】 Vertx-Core地址 注意 UDP是无连接的传输,这意味着您与远程客户端没有建立持续的连接。 所以,您发送和接收的数据包都要包含有…...
代码管理平台Gitlab如何通过快解析实现远程访问?
一、Gitlab功能介绍 Gitlab是被广泛使用的基于git的开源代码管理平台,用于管理、存储开发人员代码,同时可以协同开发 二、外网试用Gitlab遇到的问题 运维人员将Gitlab服务器部署在总部机房,而分公司开发人员和出差运维人员就无法访问Gitlab…...
七彩喜防摔马甲:科技守护银发安全的“隐形铠甲”
随着现代人生活方式的多样化,尤其是在户外运动和骑行等活动中,安全问题日益受到重视。 七彩喜防摔马甲,作为一款兼具防护性与舒适性的智能穿戴设备,正在改变人们对传统防护装备的认知。 创新设计 防摔马甲的设计灵感来源于人体…...
IDEA推送到gitlab,jenkins识别,然后自动发布到需要的主机
实验环境 192.168.8.100 gitlab 192.168.8.200 jenkins mvn 192.168.8.10 测试主机 默认都关闭了防火墙和setenforce 实验要求 实验在IDEA上面推送代码然后gitlab推送给jenkins,然后mvn构建,最后发布到测试主机上面 实验开始 在tomcat上安装manve…...
五、【API 开发篇(下)】:使用 Django REST Framework构建测试用例模型的 CRUD API
【API 开发篇】:使用 Django REST Framework构建测试用例模型的 CRUD API 前言第一步:增强 Serializers (序列化器) - 处理关联和选择项第二步:创建 TestCaseViewSet (视图集) - 支持过滤第三步:注册 TestCaseViewSet 到 Router第…...
IDEA推送到gitlab,jenkins识别,然后自动发布到需要的主机(流水线)
jenkins流水线 新建项目 找到流水线选择脚本 3.点击流水线语法开始编辑脚本 4.生成流水线脚本复制 5.修改脚本 6.继续添加(手打) 7.继续生成添加 8.最终脚本 9.保存测试 10.构建 11.访问主页查看是否修改...
四、【API 开发篇 (上)】:使用 Django REST Framework 构建项目与模块 CRUD API
【API 开发篇 】:使用 Django REST Framework 构建项目与模块 CRUD API 前言为什么选择 Django REST Framework (DRF)?第一步:创建 Serializers (序列化器)第二步:创建 ViewSets (视图集)第三步:配置 URLs (路由)第四步…...