自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 Go语言怎么做多阶段构建_Go语言Docker多阶段构建教程【完整】

必须关闭 CURLOPT_SSL_VERIFYPEER是错误认知,实际应通过Go的TLS配置加载可信CA;Go 本身不依赖 cURL,但如果你在 Go 中调用 C 库或混用 PHP 风格的 HTTP 客户端(比如通过 cgo 封装 libcurl),才可能碰到这个选项。纯 Go 的 http.Client 根本没有 CURLOPT_SSL_VERIFYPEER 这个概念。设为 0 后,net 包会回退到纯 Go 实现(如 DNS 查询走 net/dnsclient),不再调用系统 getaddrinfo;

2026-05-08 21:41:54 174

原创 c++怎么编写多线程安全的跨平台文件日志库_无锁队列与异步IO【附源码】

构造时用 std::string_view 避免拷贝设置合理容量(如 65536),满时采用丢弃策略(try_enqueue 返回 false)比阻塞更安全不要在生产者线程里做格式化:时间戳、线程 ID、级别字符串全部由消费者线程统一生成,减少锁粒度和 CPU 波动异步 IO 不等于用 std::async 包一层 write()std::async(std::launch::async, [&]{ fs 只是把同步写挪到另一线程,没解决底层 write() 的系统调用阻塞问题,且频繁创建线程开销大。

2026-05-08 21:40:41 163

原创 Vue.js响应式shallowReadonly实现对象属性的一层状态保护

shallowReadonly 仅对对象第一层属性做只读保护,深层嵌套对象或数组仍可修改;它不递归冻结,适用于需防止顶层替换但保留子状态可变性的场景。shallowReadonly 是 Vue 3 提供的一个响应式工具函数,它只对对象**第一层属性**做只读保护,内部嵌套的对象或数组仍可被修改。它不递归冻结深层结构,适合在需要“浅层不可赋值但深层可变”的场景中使用,比如防止父级属性被意外替换,同时保留子状态的响应式更新能力。

2026-05-08 21:39:27 236

原创 MySQL 中高效存储与查询时间数据的最佳实践

占位符防止注入,让数据库生成时间(更可靠、时区统一) $stmt = $this->conexion_db->prepare( "INSERT INTO table_hand (fecha, user, title, link, country, city, inspiration, views, hands) VALUES (NOW(),?NOW() 与 SYSDATE() 均可,但 NOW() 返回语句开始执行时的时间(事务内一致),更符合业务预期;

2026-05-08 21:38:12 162

原创 如何用 PointerEvent 获取压感和触摸点面积等高级信息

须安全检测属性存在;压感值范围:event.pressure 是 0.0–1.0 的浮点数,0 表示未接触,1 表示最大压力(注意:不是物理单位,设备间无绝对可比性) 接触尺寸:用 event.width 和 event.height(单位:CSS 像素),二者常相等(圆形接触点),但某些笔尖倾斜时会呈椭圆 安全访问方式:始终先检查属性是否存在,避免报错:if ('pressure' in event) { console.log(event.pressure);

2026-05-08 21:36:58 169

原创 如何在 Ubuntu Core(Snappy)上部署 Go Web 服务

正确做法是在常规 linux 系统上构建 go 应用,通过 snapcraft 打包为 .snap 文件,再安装到 ubuntu core 设备上。正确做法是在常规 linux 系统上构建 go 应用,通过 snapcraft 打包为 .snap 文件,再安装到 ubuntu core 设备上。它默认不包含 wget、curl、gcc、go 等开发工具链,也不支持 apt 或 snap install --classic,因此直接在设备上下载、编译或安装 Go 是不可行且违背其设计原则的。

2026-05-07 22:06:13 133

原创 php怎么调用快手开放平台_php如何接入快手授权登录流程

快手PHP后端授权需手动实现OAuth2三步:跳转授权页→接收code→换取access_token和用户信息;必须严格校验redirect_uri、state,用curl发标准POST/GET请求,注意header、编码、时间同步等细节。常见错误现象:invalid_grant(code 已用过或过期)、redirect_uri_mismatch(前后端 redirect_uri 不一致)、missing parameter: code(没从回调地址里正确取到 code)。

2026-05-07 22:04:28 214

原创 如何处理SQL并发插入时的死锁故障_优化索引顺序与锁粒度

死锁不是数据冲突,是锁申请顺序不一致MySQL 的 INSERT 死锁绝大多数不是因为两条语句想插同一行,而是它们在等待对方持有的索引锁——尤其当表有多个二级索引时。比如表 t_order 有索引 INDEX idx_status_uid (status, user_id) 和 INDEX idx_uid_created (user_id, created_at),并发插入时若一个事务按 status=1 扫描,另一个按 user_id=1001 扫描,二者在两棵索引树上加锁顺序天然不一致。

2026-05-07 22:02:46 189

原创 如何提取SQL日期中的年份_使用YEAR或EXTRACT函数

EXTRACT(YEAR FROM ...)为SQL标准函数,但各数据库对输入格式要求不同,跨库兼容需结合DATE_FORMAT、FORMAT或日期范围过滤等替代方案。YEAR() 在 PostgreSQL 里根本不存在,EXTRACT() 在 SQL Server 里也不支持。更麻烦的是,有些场景下你其实不需要“年份数字”,而是要按年分组统计——这时直接用日期范围过滤或 DATE_TRUNC('year', col)(PostgreSQL/BigQuery)反而更稳、更快。

2026-05-07 22:00:59 160

原创 MySQL迁移任务中的数据流向监控_使用流量分析工具排查

复制延迟低 ≠ 从库负载低,更不等于数据流向受控。更麻烦的是,它不触发 binlog_row_image=FULL 的完整镜像,可能让基于行的复制丢失上下文。LOAD DATA INFILE 在主从架构中默认被禁止(secure_file_priv 不同 + 从库 read_only),但如果客户端走的是 LOAD DATA LOCAL INFILE,它实际由客户端读文件、分片发 INSERT,服务端根本看不到“文件路径”,也就不会校验权限——这种行为绕过所有服务端管控,且无法被 binlog 完整记录。

2026-05-07 21:59:12 174

原创 mysql在线执行DDL导致阻塞_使用MySQL 8.0的快速加列特性

必须加在表末尾(不能用 AFTER xxx 或 FIRST)列类型不能是 TEXT、BLOB、JSON、GEOMETRY不能带 DEFAULT 表达式(如 DEFAULT (uuid())),常量默认值可以(DEFAULT 0)表引擎必须是 InnoDB,且 innodb_file_format= Barracuda(5.7+ 默认满足)怎么确认你的 ADD COLUMN 走的是 INSTANT?真正有效的验证方式是看执行耗时与磁盘 I/O:对千万行表,INSTANT 操作通常在毫秒级完成;

2026-05-06 20:33:16 228

原创 MySQL触发器在主从架构下的表现_MySQL触发器主从同步策略

触发器在从库默认不执行,主从复制仅同步binlog事件而非触发器逻辑,从库需手动创建且受read_only和DEFINER权限限制;触发器在从库上默认不执行MySQL主从复制只同步 binlog 事件,不复制触发器本身,更不会在从库自动触发。常见错误现象:SHOW TRIGGERS 在从库能看到触发器定义,但业务侧发现从库缺少预期的衍生数据(比如统计表没更新、审计日志缺失),误以为是同步延迟或触发器失效。使用场景:你想靠从库同步出一份带审计字段的副表,指望触发器自动补全——这条路走不通。

2026-05-06 20:31:31 210

原创 Redis如何实现复杂逻辑的原子操作

KEYS 参数个数必须和脚本里 KEYS[n] 的最大索引一致,少传会报 ERR Error running script同一个脚本里多个 key,必须全部列在 KEYS 里,不能一部分硬编码、一部分拼接如果逻辑涉及不同 slot 的 key(比如用户信息和订单日志),Redis 集群下无法用单个脚本完成——得拆成多个原子操作,或改用单节点部署为什么不用 SETNX + EXPIRE 组合做分布式锁单独用 SETNX 加锁再 EXPIRE 设过期,不是原子的。

2026-05-01 20:42:08 172

原创 mysql启动报错找不到my.cnf怎么办_mysql配置文件问题

MySQL启动报错本质是未找到配置文件,实际按固定顺序搜索/etc/my.cnf等路径;可通过mysqld --help --verbose查看搜索顺序,优先在其中一路径放置含datadir、socket、user的最小my.cnf;快速生成一个能用的 my.cnf(避免空配置引发权限/路径问题)很多报错其实源于 datadir 权限不对、socket 路径不存在,或用户指定的 pid-file 不可写。

2026-05-01 20:40:23 32

原创 Go语言中 & 与 - 操作符的语义解析:地址取值与指针解引用

本文深入讲解 go 中取地址符 `&` 和解引用符 `*` 的本质区别、使用场景及常见误区,结合 `json.decode` 等典型用例,帮助开发者准确理解指针机制,避免因混淆操作符导致的编译错误或运行时 panic。y := 42addr := &y // addr 的类型是 *int,值为 y 的内存地址*:解引用操作符(Dereference Operator)*p 表示“访问指针 p 所指向的内存地址中存储的值”,即“顺着指针跳转一次”。立即学习“go语言免费学习笔记(深入)”;

2026-04-29 23:32:48 36

原创 如何利用宝塔面板实现网站版本控制_集成Git自动拉取

根本原因是宝塔计划任务以www用户运行,但该用户缺Git、私钥、全局配置等权限;需手动验证git pull、用绝对路径、配SSH密钥与用户信息、显式指定--git-dir/--work-tree,并处理缓存与权限问题。Git 自动拉取在宝塔里为什么总不生效根本原因不是 Git 命令写错了,而是宝塔的「计划任务」默认以 www 用户身份运行,而该用户通常没权限读取私钥、没配置 git 全局用户、甚至压根没装 git(部分精简版系统)。必须显式指定工作目录、SSH agent、Git 路径。

2026-04-29 23:31:10 164

原创 如何正确实现驾驶成本计算函数并避免常见输入与逻辑错误

在编程练习中,尤其是涉及函数设计与输入输出控制的题目(如本题的“Driving costs”),一个看似微小的结构失误——例如在不需要用户输入的参数上强行调用 input(),或在循环中误用 return 提前终止执行——就可能导致程序崩溃、无输出或逻辑错乱。正确理解题目需求题目明确要求:定义函数 driving_cost(miles_per_gallon, dollars_per_gallon, miles_driven),仅返回对应里程的油费(单位:美元),不负责打印;

2026-04-28 22:19:03 197

原创 Golang怎么时间加减运算_Golang如何用Add和AddDate偏移时间【操作】

比如 1 月 31 日加 1 个月,AddDate(0,1,0) 得到 2 月 28 日(或 29),而 Add(720 * time.Hour) 会硬算到 3 月 2 日 —— 完全不是一回事。如果希望强制落到当月最后一天,得手动判断:t.AddDate(0,1,0).AddDate(0,0,-t.Day()+1).AddDate(0,0,-1)(先跳到下月 1 号,再减 1 天)跨年时注意负值:2023-03-15 调用 AddDate(-1,0,0) → 2022-03-15,没问题;

2026-04-28 22:17:28 233

原创 MySQL无法通过网络连接服务器_检查bind-address与访问权限

仅 reload 不生效注意:Docker 容器内运行 MySQL 时,bind-address 设为 0.0.0.0 仍可能不奏效——容器网络模式、端口映射(-p 3306:3306)和宿主机防火墙三者都要对得上用户权限未授权远程主机访问即使网络层通了,MySQL 会校验连接用户的 host 部分。,否则权限不生效如果用户已存在且 host 是 localhost,不能直接 UPDATE mysql.user 修改,应先 DROP USER 'appuser'@'localhost';

2026-04-27 21:25:27 183

原创 宝塔面板网站无法发邮件怎么办_检查PHP函数与SMTP配置

进宝塔 → 网站 → PHP 设置 → 禁用函数列表,删掉 mail确认 sendmail_path 在 PHP 配置里没被注释或设为空(宝塔界面“配置文件”里搜这一行)重启 PHP 服务(不是重启面板或服务器)写个测试脚本:<?Gmail 要开启两步验证再生成 App Password插件里 SMTP 主机填 smtp.qq.com,端口选 465(SSL)或 587(TLS),别混用宝塔自带的邮件推送(如登录通知)失败这是宝塔后端自己的 Python 脚本发信,和网站 PHP 无关。

2026-04-27 21:23:58 199

原创 如何创建物化视图_CREATE MATERIALIZED VIEW基本语法与数据填充

2026-04-26 19:18:38 15

原创 python脚本如何在windows下运行?_?Windows系统下运行Python脚本的命令行与IDE方法

2026-04-26 19:17:07 149

原创 mysql如何创建仅供程序调用的权限账号_MySQL非交互式用户配置

连接字符串里写死 localhost 却用 TCP 连接,权限永远不生效MySQL 的 'user'@'host' 中 host 部分区分 Unix socket 和 TCP:当应用通过 127.0.0.1 或具体 IP 连接时,匹配的是 'user'@'%' 或 'user'@'10.20.30.%',不是 'user'@'localhost'。

2026-04-25 22:02:29 205

原创 模型持久化不会提升准确率——揭秘机器学习中常见的评估误区

y_test = whitewine_data['quality']y_pred = model.predict(X_test) # ← 在训练数据上“测试”由于该模型正是用同一份 whitewine_data(剔除部分列后)训练所得,此时 X_test 实质等价于训练集 X_train 的超集(甚至完全重合),模型对见过的数据自然能高度拟合——这反映的是记忆能力而非泛化能力,属于典型的数据污染(data leakage)与评估失效。

2026-04-25 22:01:00 197

原创 php属性类型声明有什么用_提升代码健壮性方法【指南】

想接受具体类或子类,必须写 User 而非 objectobject 无法调用任何方法(因无确定类),IDE 不提示,运行时报 Fatal error: Call to undefined methodPHP 8.2+ 支持 static 属性类型,但仅限于静态属性,且不能用于构造函数参数提升与构造函数参数提升一起用时的典型陷阱当把构造参数直接提升为属性时,类型声明必须一致,否则会触发致命错误。比如参数声明 string $name,但属性写成 public int $name,PHP 直接拒绝加载类。

2026-04-24 23:31:15 190

原创 JavaScript 递归调用栈深度解析与层级遍历陷阱排查教程

2026-04-24 23:29:49 161

原创 C#怎么将集合分块处理_C#如何使用Chunk方法【实战】

2026-04-22 19:53:04 237

原创 Layui弹出层layer如何实现窗口背景的模糊(Blur)滤镜效果

...

2026-04-22 19:51:42 155

原创 宝塔面板如何快速找回前一天误删的极其重要的网站源码

回收站里大概率有,先检查宝塔面板文件回收站;登录面板后,点左侧【文件】→ 右上角【回收站】按钮(不是“数据库回收站”,那是另一处)回收站里显示的是完整路径,比如 /www/wwwroot/your-site.com,注意核对名字和时间戳,别选错站勾选整个目录(含子目录),点顶部【恢复】,系统会原路放回,不改权限、不丢软链如果回收站是空的,别硬刷:要么你关过 文件回收站 开关(去【设置】→【安全设置】里确认),要么是用 rm -rf 或 FTP 工具删的——这两种方式根本不会进回收站回收站空了?

2026-04-21 23:05:49 180

原创 Go 程序中正确使用 #cgo 指定 C 头文件搜索路径的实践指南

以下为正确写法(关键:无空行):// #cgo CFLAGS: -I/usr/local/WordNet-3.0/include// #cgo LDFLAGS: -L/usr/local/WordNet-3.0/lib -lWN/*#include <stdio.h>#include <stdlib.h>#include <string.h>#include "wn.h"static void printlicense() { printf("WordNet License %s。

2026-04-21 23:04:24 243

原创 Chart.js 4 中实现基于数据极值的垂直线性渐变填充

2026-04-20 21:31:38 198

原创 Go语言如何防SQL注入_Go语言SQL注入防护教程【精选】

2026-04-20 21:30:16 185

原创 C#怎么实现窗口的动画效果_C#如何使用AnimateWindow函数【实战】

AnimateWindow 在 WinForms 中失效的根本原因是调用时机错误——必须在窗口已创建但尚未显示(Visible == false)时调用,或对已显示窗口先 Hide() 再动画显示;为什么 AnimateWindow 在 WinForms 里经常没反应根本原因不是函数写错了,而是调用时机不对——AnimateWindow 必须在窗口**已创建但尚未显示(即 Visible == false)时调用**,或者对已显示窗口做「隐藏+动画显示」组合操作。

2026-04-19 23:20:54 184

原创 MySQL从库出现数据同步异常中断_重新获取binlog坐标同步

SHOW SLAVE STATUS 显示 Seconds_Behind_Master 为 NULL 或 IO/SQL 线程为 No这说明复制链路已断,不是延迟高,而是彻底停了。常见现象是 Slave_IO_Running 和/或 Slave_SQL_Running 显示 No,Seconds_Behind_Master 为 NULL,同时 Last_IO_Error 或 Last_SQL_Error 里有具体报错。

2026-04-19 23:19:33 173

原创 SQL如何解决GROUP BY导致查询变慢_利用覆盖索引进行优化

GROUP BY a, b 时,索引必须是 (a, b) 或 (a, b, c) 这类左前缀结构,(b, a) 不行SELECT a, b, SUM(c) 要走覆盖,索引至少得是 (a, b, c);如果只建了 (a, b),c 还得回表查,不覆盖注意隐式类型转换:比如 user_id 是 BIGINT,但 WHERE user_id = '123' 传了字符串,索引就失效,覆盖自然也崩了建覆盖索引时最容易踩的三个坑覆盖索引不是字段堆得越多越好,顺序、冗余和维护成本都得算进去。

2026-04-18 23:25:50 236

原创 HTML怎么创建灵感标签智能推荐_HTML输入自动联想标签【技巧】

用 datalist + <input list="xxx"> 只能做前缀匹配,不支持模糊搜索、不支持多值、无法阻止默认提交把标签当普通文本塞进 <input type="text">,后续解析易出错(比如用户输逗号、空格、中文顿号)没拦截 Enter 或 Blur,导致标签未确认就丢失用 contenteditable + div 替代 input 更可控真要做多标签输入+实时推荐,放弃纯 <input> 是更稳妥的选择。使用场景:内容后台的分类标签、文章关键词、协作工具的任务成员选择。

2026-04-18 23:24:24 203

原创 SQL嵌套查询如何实现动态字段检索_结合CASE表达式处理

数据库执行时需要提前确定访问哪一列,而CASE返回的是值,不是标识符。

2026-04-17 22:38:09 205

原创 如何通过闭包保存异步回调中所需的上下文状态数据

参数 index 是 IIFE 的形参,每次调用都新建一个局部变量,被内部回调闭包捕获不要写成 (function(){...})(i) 然后在内部直接用 i——那还是捕获全局 i现代代码中优先用 let,IIFE 更适合需要兼容性或需传多个上下文参数的场景,比如 (function(id, name) { ... })(user.id, user.name)bind 和箭头函数也能实现类似效果,但语义不同bind 把参数预绑定到函数的 this 和前几个参数位,适用于需要固定上下文或部分参数的回调;

2026-04-17 22:36:51 219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除