HP 打印机"需要用户干预"修复指南

适用场景:电脑打印提示"打印机需要用户干预",但手机可以正常打印。

第一步:清除卡住的打印队列

  1. Win + R,输入 services.msc,回车
  2. 找到 Print Spooler,右键 → 停止
  3. 打开文件管理器,进入路径:

    C:\Windows\System32\spool\PRINTERS
  4. 删除该文件夹内的 所有文件(这些是卡住的打印任务,删除不影响打印机)
  5. 回到服务窗口,右键 Print Spooler启动

第二步:将 WSD 端口改为 TCP/IP 端口(关键步骤⚠️)

这是问题的根本原因。Windows 自动分配的 WSD 端口极不稳定,必须换成 TCP/IP 固定端口。

2.1 确认打印机 IP 地址

方法一:在打印机面板上按 信息键 (i),打印网络配置页,查看 IP 地址

方法二:在手机 HP Smart 应用中查看打印机 IP

方法三:在电脑浏览器地址栏输入路由器管理地址,查看已连接设备中打印机的 IP

2.2 创建 TCP/IP 端口

  1. Win + R,输入 control printers,回车
  2. 右键你的 HP 打印机 → 打印机属性
  3. 切换到 端口 选项卡
  4. 点击 添加端口…
  5. 选择 Standard TCP/IP Port → 点击 新端口…
  6. 向导点击"下一步"
  7. 打印机名或 IP 地址:输入打印机的 IP 地址(如 192.168.10.6

    • 端口名会自动生成为 IP_192.168.10.6,不用改
  8. 点击"下一步"→"完成"

2.3 切换到新端口

  1. 回到 端口 选项卡
  2. 在端口列表中,勾选 刚创建的 IP_192.168.10.6 端口
  3. 取消勾选 原来的 WSD 端口(名字很长一串,类似 WSD-7997d987-…
  4. 点击 应用确定

第三步:关闭双向支持

  1. 右键打印机 → 打印机属性
  2. 切换到 端口 选项卡
  3. 取消勾选 "启用双向支持"
  4. 点击 应用确定

第四步:重启打印服务

  1. Win + R,输入 services.msc,回车
  2. 右键 Print Spooler重新启动

验证

打印一份测试页:

  1. 右键打印机 → 打印机属性
  2. 点击 打印测试页

如果测试页正常打印,修复成功 ✅


注意事项

  • 绑定固定 IP:建议在路由器管理页面中,将打印机 IP 与其 MAC 地址绑定,避免重启路由后 IP 变化导致再次失联
  • 换路由器/重置网络后:如果打印机 IP 变了,需要重新执行第二步,更新端口指向新 IP
  • USB 连接的打印机:本指南适用于无线/网络连接;USB 连接请检查端口是否选的 USB001 等虚拟端口,同样注意关闭双向支持

如果以上仍无法解决

  1. 完全卸载打印机:设置 → 蓝牙和其他设备 → 打印机和扫描仪 → 删除设备
  2. 卸载 HP Smart 应用,重启电脑
  3. 从 HP 官网重新下载驱动:https://support.hp.com
  4. 安装驱动时选择"无线连接",按向导重新配置
  5. 配置完成后,再次按上述步骤检查端口是否为 WSD,如果是则重复第二步和第三步

只合并线上某一个提交到当前分支,用 git cherry-pick,不要用 merge。下面给你完整、可直接照抄的步骤。


一、流程(本地操作,最终推到线上)

1. 先拉最新代码、切到目标分支

# 拉取线上所有分支最新信息
git fetch origin

# 切换到你要“合入”的分支(比如 main / master)
git checkout main

2. 找到线上那个提交的 hash

查看目标分支(比如 feature/xxx)的提交:

git log --oneline origin/feature/xxx

输出类似:

a1b2c3d 修复核销bug   ← 你要的这一条
e4f5g6h 优化列表样式
...

复制你需要的那个 7位 hash(a1b2c3d)

3. 把这一个提交“摘”到当前分支

git cherry-pick a1b2c3d
  • 成功:自动生成一个新 commit(hash 和线上那个不一样,但代码改动完全一样)。
  • 有冲突:会停下来让你解决冲突。

4. 冲突怎么处理(常见)

# 1. 手动改完冲突文件后
git add .

# 2. 继续 cherry-pick
git cherry-pick --continue

如果搞砸了想放弃:

git cherry-pick --abort

5. 推到线上

git push origin main

二、常用进阶

一次 pick 多个不连续提交

git cherry-pick hash1 hash2 hash3

pick 一个连续区间(含首尾)

git cherry-pick startHash^..endHash

只把代码拿过来、不自动提交(便于自己改)

git cherry-pick -n a1b2c3d

一句话总结:fetch → 切目标分支 → log 找 hash → cherry-pick → push

一、MySQL 重命名表

语法

-- 方式1(通用)
ALTER TABLE 旧表名 RENAME TO 新表名;

-- 方式2(跨库也可用,推荐)
RENAME TABLE 旧表名 TO 新表名;

示例

原表 user,改名为 user_old

ALTER TABLE `user` RENAME TO `user_old`;

二、复制原表结构(空表,仅结构、索引、字段,不复制数据

-- 语法
CREATE TABLE 新表名 LIKE 源表名;

-- 示例:创建和 user_old 结构完全一致的新表 user
CREATE TABLE `user` LIKE `user_old`;

三、如果需要连数据一起复制(结构+数据全量克隆)

-- 结构 + 数据 一起复制
CREATE TABLE 新表名 SELECT * FROM 源表名;

完整流程示例(常用场景:旧表改名 + 新建同结构空表)

-- 1. 把原有业务表改名备份
ALTER TABLE `test_table` RENAME TO `test_table_bak`;

-- 2. 创建一张和原表结构完全相同的新空表
CREATE TABLE `test_table` LIKE `test_table_bak`;

补充说明

  1. LIKE 方式会完整复制字段、数据类型、主键、索引、默认值、注释,不会复制数据;
  2. 执行前建议先锁表/停业务,避免数据写入导致不一致;
  3. 表名建议用反引号 ` 包裹,防止和关键字冲突。

关于 ALTER TABLE 和 RENAME TABLE 这两种语法的区别,速度和原理是否一样:

-- 方式1(通用)
ALTER TABLE 旧表名 RENAME TO 新表名;

-- 方式2(跨库也可用,推荐)

两种表改名语法:区别、原理、速度

一、核心结论

底层原理、执行速度基本一致,都是元数据级操作(瞬间完成,不改动表数据),主要差异在语法能力、使用场景、语法规范


二、详细区别

1. 语法与标准归属

  1. ALTER TABLE 旧名 RENAME TO 新名

    • 属于 ALTER TABLE 子语法,是 SQL 标准衍生写法。
    • 仅支持单表改名不能跨数据库
    • 语法语义:修改表的名称属性。
  2. RENAME TABLE 旧名 TO 新名

    • MySQL 专属扩展语法,功能更强。
    • 支持单表 / 多表批量改名跨数据库迁移表
    • 多表示例:

      RENAME TABLE t1 TO t1_bak, t2 TO t2_bak;
    • 跨库示例(把 db1.tbl 移到 db2 并重命名):

      RENAME TABLE db1.tbl TO db2.tbl_new;

2. 权限要求

  • 两者都需要原表的 ALTER 权限。
  • 跨库使用 RENAME TABLE 时,需要目标库的 CREATE 权限

3. 锁机制 & 并发(InnoDB)

两者在 InnoDB 下行为一致:

  • 均为元数据操作,仅修改数据字典、文件映射,不拷贝行数据
  • 执行时会加 MDL 元数据锁,短时间阻塞 DDL/DML,锁持有时间极短。
  • 不存在 IO 读写,速度完全相同,都是毫秒级。

4. 兼容性

  • ALTER TABLE ... RENAME:兼容更多数据库(MariaDB、部分其他SQL库),通用性更好。
  • RENAME TABLE纯 MySQL 专用,其他数据库不识别。

三、原理(完全一致)

MySQL 表名本质只是数据字典里的标识,同时对应磁盘上 .frm.ibd 等文件名称:

  1. 两种语法都不遍历、不迁移表内数据
  2. 仅修改:数据字典记录 + 磁盘上表相关文件名称;
  3. InnoDB 共享表空间/独立表空间,行为无区别。

四、使用场景建议

  1. 同库、单表、追求通用兼容 → 用 ALTER TABLE ... RENAME TO
  2. 跨库、批量改表名、MySQL 专属环境 → 优先 RENAME TABLE
  3. 速度不用纠结:二者性能无差异
    RENAME TABLE 旧表名 TO 新表名;

实战:备份日志表并创建新的日志表,用到变量、动态SQL执行

-- 定义变量:拼接 表名_年月日
SET @old_tb = 'sp_log';
SET @suffix = DATE_FORMAT(CURDATE(), '%Y%m%d');
SET @bak_tb = CONCAT(@old_tb, '_', @suffix);

-- 2. 第一条:重命名旧表
SET @sql1 = CONCAT('RENAME TABLE `', @old_tb, '` TO `', @bak_tb, '`;');
PREPARE stmt1 FROM @sql1;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

-- 3. 第二条:新建同结构空表
SET @sql2 = CONCAT('CREATE TABLE `', @old_tb, '` LIKE `', @bak_tb, '`;');
PREPARE stmt2 FROM @sql2;
EXECUTE stmt2;
DEALLOCATE PREPARE stmt2;

如果你尝试将两条SQL放到一个预定义语句中执行,将喜提一个报错:
报错原因
MySQL 一条预处理语句里不能同时放两条独立 SQL(RENAME + CREATE 写在同一个字符串里),解析时直接语法报错。
预处理 PREPARE 单次只支持单条 SQL 语句。

  SET @sql = CONCAT(
    'RENAME TABLE `', @old_tb, '` TO `', @bak_tb, '`;',
    'CREATE TABLE `', @old_tb, '` LIKE `', @bak_tb, '`;'
  );

  PREPARE stmt FROM @sql;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;

先把结论说清楚:
Edge 149+(2026 最新版)已经把“关闭圆角”的官方开关和 flags 都删掉了。下面给你目前能用的几种办法,从简单到进阶。


一、先看你有没有“外观 → 圆角”开关(旧版有效)

  1. 打开 Edge → 右上角「⋯」→ 设置
  2. 左侧 外观
  3. 找找有没有 圆角 / 全新外观 开关,有的话直接关掉、重启即可。

新版(149.x)这里已经没有了。


二、edge://flags 关闭圆角(149 以前有效,新版已移除)

  1. 地址栏输入:

    edge://flags
  2. 搜索:

    rounded
  3. 找到 Microsoft Edge rounded corners,设为 Disabled
  4. 点右下角 Restart 重启浏览器。

⚠️ 149.0.4022.52+ 这个 flag 已经被微软删掉,找不到了


三、最新版临时方案:用启动参数关闭新外观(有效

  1. 关闭所有 Edge 窗口
  2. 找到桌面/开始菜单的 Edge 图标 → 右键 → 属性
  3. 在「目标」框最后,加一个空格,再粘贴:

    --disable-features=msFeatureGroupNewLookAndFeelHoldout

    示例:

    "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --disable-features=msFeatureGroupNewLookAndFeelHoldout
  4. 确定,重新打开 Edge。

这个能把新的圆角/白边外观关掉,恢复接近直角的样式。


四、终极方案(长期)

微软从 149 开始强制圆角设计,后续可能连启动参数也会失效。
你可以:

  • 用上面的启动参数临时解决
  • 或者改用 Chrome / 国产浏览器(没有这个强制圆角)
  • 在 Edge 里按 Alt+Shift+I 反馈,要求加回开关