用途:用于保存可复用的 MySQL 连接 profile,支持直连、SSH 隧道连接私有 MySQL 主机,以及在数据库 URL 位于远端 .env 的服务器上通过 SSH 远程执行。可用于查看 schema、select、insert、update、delete 和原始 SQL。
主要能力:基于 Bash 脚本与 mysql CLI,不依赖 Python、pymysql 或 jq。结果以 JSON 输出到 stdout,并默认保存到 ./out/mysql-crud-<UTC 时间戳>-<pid>.json。支持 configure、list-profiles、remove-profile、schema、select、insert、update、delete、raw-sql 等命令。
使用方式:profile 保存于 ~/.config/mysql-crud/profiles/,为 0600 配置文件。可配置 direct、ssh-remote、ssh-tunnel 三种模式。查询示例:
bash <skill-path>/scripts/mysql_crud.sh schema --profile frevana-prod --table users
写入操作先 dry-run,再经用户明确确认后加 --execute。update 和 delete 需要 --where,除非用户确认全表操作并传 --allow-full-table。过滤建议使用参数占位符,如 --where "email = :email" --param email=a@example.com。
限制与安全:切勿在仓库中保存数据库凭据;不要打印密码或完整数据库 URL,列表用 list-profiles 获得脱敏输出。readonly profile 不得用于写操作。不确定表或列名时先查看 schema,不要臆造。脚本不是迁移工具,除非用户明确要求并接受风险,否则不用于 schema 变更。ssh-remote 依赖远端 bash、mysql 和有效的 remote_cwd;ssh-tunnel 会启动 ssh -N -L 并在命令结束时终止隧道。标识符仅限简单 MySQL 标识符及可选的 database.table 形式。