发现

社区文章

来自 MMao 贡献者的精选知识。

MySQL 触发器

前言 触发器(TRIGGER)是由事件来触发某个操作。这些事件包括insert语句、update语句和delete语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。 一、创建触发器 触发器是由insert、update和delete等事件来触发某种特定操作。满足触发器的触发条件时,数据...

FastAPI 项目使用 PyArmor 外置许可证混淆与授权

Python 3.13.5 Pyarmor 9.1.8 (trial) 一、背景与目标 在向多家企业交付 FastAPI 服务时,我们既要保护源码避免泄露,又要灵活控制授权(机器绑定 + 到期)。PyArmor 8.5+ 的 外置许可证(Runtime Key) 机制可以让我们 一次混淆代码、多次下...

FastAPI清除接口返回数据中的None

如果要在 FastAPI 项目中统一地处理模型序列化以自动排除所有 None 值,可以通过自定义响应处理来实现。 这里提供一种方法,通过自定义 FastAPI 的 JSONResponse 来统一排除模型中的 None 值: 方法 步骤 1: 创建一个自定义的 JSON 响应类 创建一个继承自 fa...

VIM替换

vim中可用 :s 命令替换字符串 语法: [addr]s/源字符串/目的字符串/[option] [addr] 表示检索范围,省略时表示当前行 [option] 表示操作类型 替换所有行中所有的str1为str2,%表示整个文件 :%s/str1/str2/g 替换当前行第一个str1为str2 ...

MySQL8密码

MySQL版本 8.0.33 在 MySQL 8 中,默认情况下,root 用户通过密码登录是被禁用的,取而代之的是使用 unix_socket 认证插件,该插件允许 root 用户通过系统用户身份直接登录到 MySQL,而不需要密码。这就是为什么你可以通过 sudo mysql 命令直接登录 My...

Linux创建用户、赋予权限

1.创建新用户 使用 useradd 命令创建一个新用户,并指定一个家目录,指定终端为bash。例如,创建一个名为 newuser 的用户,可以使用以下命令: sudo useradd -m -s /bin/bash newuser 如果用户已经创建了,可以修改这个用户的终端: sudo chsh ...

Ubuntu版本号和发布名称对照表

发布日期 Noble Numbat 23.04 2022年4月21日 Hirsute Hippo 20.04 LTS 2019年4月18日 Bionic Beaver 17.04 2016年4月21日 Vivid Vervet 14.04 LTS 2013年4月25日 Precise Pangoli...

vscode运行Flask项目

1.激活虚拟环境 假设有一个flask项目,使用venv虚拟环境。 ctrl+shift+p,调出命令,选择如下Python: Select interpreter 选择之后,弹出选择环境的对话框 选择对应的虚拟环境即可。 在打开一个py文件后,vscode的状态栏会显示当前项目的虚拟环境信息 2....

Linux 打包

.tar (注:tar是打包,不是压缩!) 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName .tar.gz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName ...

MySQL审计功能

背景 MySQL审计(MySQL Auditing)是一个用于跟踪和监控MySQL数据库活动的功能。它可以帮助数据库管理员、安全专家和审计员了解数据库的使用情况,确保数据的完整性、可用性和机密性。以下是MySQL审计的一些常见使用场景: 安全性监控: 通过审计,可以跟踪任何对数据库的潜在恶意访问,如...

菜根谭

《菜根谭》是以处世思想为主的格言式小品文集,采用语录体,揉合了儒家的中庸思想,道家的无为思想和释家的出世思想的人生处世哲学的表白。 [TOC] 1. 弄权一时,凄凉万古 栖守道德者,寂寞一时;依阿权势者,凄凉万古。达人观物外之物,思身后之身,守受一时之寂寞,毋取万古之凄凉。 [解释] 一个坚守道德规...

数据库架构师怎样设计产品的数据库?

设计产品数据库是数据库架构师的重要职责之一。以下是数据库架构师设计产品数据库的常见方法、步骤以及使用的工具: 一、方法与步骤 1. 需求分析 理解业务需求:与业务方、产品经理、开发团队沟通,明确功能需求、非功能需求(如性能、安全性、可扩展性等)。 确定数据需求:确定需要存储和管理的数据类型、数据量、...

supervisor使用指定账户启动子进程

supervisor V4.2.4 supervisor使用root账号启动时,如果子进程会继承root账号的环境变量和权限, 如果子进程不需要过大的权限,可以设置子进程的用户,在配置文件中通过环境变量进行设置子进程的用户。 如果在[supervisord]中指定子进程用户,则所有子进程都要用指定的...

Redis不断重启

系统 Ubuntu 20.04.6 Redis 5.0.7 现象: Redis每隔1分钟或者2分钟会自动重启,日志(/var/log/redis/redis-server.log)如下 signal-handler (1710819652) Received SIGTERM scheduling s...

Python 单例模式

Python使用单例模式时,可以创建一个Singleton类,所有继承Singleton的子类,都为单例模式 class Singleton(abc.ABCMeta, type): """ Singleton metaclass for ensuring only one instance of a...

MySQL索引类型和索引方法

MySQL 中的索引类型和索引方法可以帮助提升查询性能。 索引类型 1. FULLTEXT 索引 用途: 用于全文检索。 支持的数据类型: CHAR, VARCHAR, TEXT。 应用场景: 处理自然语言搜索(如搜索文章内容、博客)。 支持布尔模式搜索和自然语言模式搜索。 特点: 提供对大文本字段...

spring security中的permitAll和anonymous

在Spring Security中,permitAll和anonymous是两个用于配置安全策略的表达式,它们用于定义对特定资源的访问权限。虽然它们在某些情况下可能产生类似的行为,但它们的意图和用途是不同的。 permitAll 含义: permitAll用于指定某个资源是完全开放的,不需要任何安全...

彻底搞懂 functools.lru_cache:原理、用法、坑点与工程化实践

关键词:LRU、缓存、性能优化、纯函数、可哈希、装饰器顺序、TTL、异步缓存、工程实践 为什么要关心 lru_cache? 当你的函数计算昂贵、参数重复且没有副作用时,缓存返回值会显著降低延迟、减少 CPU 消耗。functools.lru_cache 是 Python 标准库自带的“轻量级、进程内...

Windows高级搜索

Windows高级搜索功能允许用户通过详细的搜索查询来更精确地查找文件和内容。以下是一些使用Windows高级搜索的技巧和方法。 1. 使用文件资源管理器的搜索功能 打开文件资源管理器:按Win + E键打开文件资源管理器。 导航到搜索栏:在文件资源管理器右上角,有一个搜索栏。输入你想要搜索的内容。...

Python装饰器

Python中的装饰器是一种非常有用的功能,它允许你在不修改原有函数代码的前提下,给函数增加新的功能。你可以把装饰器想象成一个包装纸,它可以把一份礼物(函数)包装起来,增加一些装饰(功能),但不改变礼物本身。装饰器在Web开发、日志记录、权限校验等多个领域都有广泛应用。 基本原理 装饰器本质上是一个...