mayfly-go v1.11.2:文件上传可取消、终端支持右键粘贴,运维管控再打磨

2026-05-18 21 预计阅读时间:1 分钟
来源:oschina.net AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:9 分钟

日常运维中,管机器和管数据库往往分散在不同工具里——SSH 终端连 Linux,Navicat 或 DBeaver 看数据库,权限审批还得另走流程。mayfly-go 把这两件事收进一个平台:Linux 机器的终端、文件管理,以及 MySQL/PostgreSQL/Redis 等数据库的连接与脚本执行,统一在一个 Web 界面里完成,权限、操作日志一并管控。

v1.11.2 这个版本没有大功能新增,但几处交互改进直接踩中了运维痛点——上传大文件时无法取消、终端里粘贴靠手动敲、数据库跑长脚本只能干等。这些"小问题"恰恰是每天都会卡住人的地方。

文件上传终于能取消了

之前往远程机器上传文件,一旦点下上传按钮就只能等到底。文件大了或者选错了路径,要么等它跑完,要么去后台硬杀进程。v1.11.2 在上传进度界面加了取消按钮,点击后立即中断传输,不再占用带宽和目标机器磁盘。

这对以下场景尤其有用:

  • 上传几十 GB 的备份文件时发现路径写错
  • 网络抖动导致上传卡在 60%,不如取消重来
  • 多人共用平台时,避免一个失控上传占满通道

文件夹上传同样支持取消,整个递归传输过程会一并停止。

终端右键粘贴菜单

Web 终端长久以来有个别扭的问题:右键粘贴不像本地终端那样自然。mayfly-go 此版本在终端里加入了复制粘贴的右键菜单——选中文本后右键复制,右键空白处粘贴,操作逻辑和本地 SSH 客户端一致。

实际效果是:从文档里复制一段命令,右键粘贴进 mayfly-go 终端直接执行,不再需要 Ctrl+Shift+V 或者手动敲入。对于经常在 Wiki、运维手册里找命令再贴到终端的工程师,这个改动省下的重复操作比想象中多。

数据库脚本执行可中断

数据库脚本执行是 mayfly-go 的核心功能之一。过去在 Web 界面跑一条大 DDL 或批量 UPDATE,一旦提交就只能等它完成或超时。如果脚本写了逻辑错误,数据库可能已经在执行错误的变更,而你无法从界面上叫停。

v1.11.2 给脚本执行加了取消操作。点击取消后,平台会向数据库发送 KILL QUERY(MySQL)或等效指令(其他数据库),终止正在运行的语句。需要注意:

  • 已经提交的事务不会被回滚,取消只阻止后续语句继续执行
  • DDL 在某些数据库引擎中不可中断(如 MySQL 的 ALTER TABLE 在某些阶段),取消可能无效
  • 批量脚本取消后,已执行的语句效果保留,需手动检查并修复

所以取消功能更适合用在"发现脚本开头就写错、赶紧停住"的场景,而不是指望它替代事务回滚。

进度通知改为全局按钮

旧版本里,上传进度、脚本执行进度等通知散落在各处,容易被忽略。v1.11.2 把这些进度通知收拢到一个全局按钮——界面右上角或底部固定位置,点击后展开查看所有进行中的任务及其状态。

好处是:你不再需要留在当前页面盯着进度,切换到其他机器或数据库操作时,随时点开全局按钮就能看到之前的任务跑到了哪里。

快速上手:用 Docker 部署 mayfly-go

下面是一个最小化部署示例,适合本地试用或小团队内部使用。假设你有一台 Linux 服务器(或本地 Docker 环境),几分钟就能跑起来。

# 1. 拉取镜像
docker pull dromara/mayfly-go:v1.11.2

# 2. 创建数据目录,持久化存储配置和日志
mkdir -p /opt/mayfly-go/data

# 3. 启动容器
#    端口 8888 对外暴露 Web 界面
#    数据目录挂载到容器内,升级版本不丢配置
docker run -d \
  --name mayfly-go \
  --restart unless-stopped \
  -p 8888:8888 \
  -v /opt/mayfly-go/data:/mayfly-go/data \
  dromara/mayfly-go:v1.11.2

启动后浏览器访问 http://<服务器IP>:8888,用默认管理员账号登录(具体账号密码见项目文档),即可开始添加机器和数据库连接。

添加一台 Linux 机器的配置示例(在 Web 界面中填写):

字段
名称 prod-app-01
主机 10.0.1.50
SSH 端口 22
用户名 deploy
认证方式 密码 / 密钥

添加后点击"终端"直接进入 SSH 会话,右键粘贴命令试试新功能。点击"文件管理"上传一个文件,观察进度并尝试取消。

添加一个 MySQL 数据库连接后,在"脚本执行"里跑一条简单查询:

-- 测试脚本执行与取消
SELECT SLEEP(10), 'hello' AS test;

执行后立即点击取消按钮,观察查询是否被中断。SLEEP(10) 模拟长耗时语句,方便验证取消功能。

选用建议与注意事项

mayfly-go 适合以下团队:

  • 需要统一管理多台 Linux 机器和多种数据库,不想在多个工具间跳转
  • 对操作权限有管控要求——谁能在什么时候连哪台机器、跑哪条脚本,平台都有记录
  • 希望非 DBA 人员也能安全地执行预审过的数据库脚本

使用前需要留意的边界:

  • 生产数据库的高危操作(如大表 DDL、无 WHERE 的 UPDATE)建议仍走审批流程,mayfly-go 的取消功能不能替代事务安全
  • 终端性能:Web 终端适合日常操作和排查,长时间高吞吐的日志 tail 或大数据量交互式查询,本地 SSH 客户端更稳定
  • 密钥管理:SSH 密钥和数据库密码存储在平台中,务必确保 mayfly-go 所在服务器本身的安全,网络层限制访问来源

v1.11.2 的改动不大,但每一处都指向真实操作中的卡点。如果你已经在用 mayfly-go,升级后终端粘贴和上传取消会立刻改善日常体验;如果还没用过,Docker 一行命令就能跑起来试一试。


相关推荐