feat(agent-db): 引入 db-conn.sh 统一数据库入口,各 agent 改用专用账号
- 新增 scripts/db-conn.sh:按 agent id 反查中文名,读 .env 后经 MYSQL_PWD 转发给 docker exec,口令不进 argv/stdout,--print 只输出占位符 - new-agent.sh 新增 --adopt 模式(为既有 agent 补建库/账号),与 --reset-password 互斥 - AGENTS.md.tpl 与 11 个 workspace-*/AGENTS.md 改用 db-conn.sh,禁用 root 与 docker exec 直连 - mysql-schema-sync 技能改用 MYSQL_PWD_SQL 环境变量,不再硬编码密码 - 设计文档补附录 A 第 8 条:中文键名无法注入 agent 环境的三条实测依据
This commit is contained in:
@@ -49,6 +49,26 @@
|
||||
- **技能 (sql-toolkit) 也遵循此默认**:未指定环境时指向 VPS
|
||||
- **需要切换环境时明确告知**:本地、备用机、或者特定库
|
||||
|
||||
## 数据库规范(本地私有库)
|
||||
|
||||
- 默认库:`sql`;账号:`agent_sql`
|
||||
- 连接(推荐):`~/.openclaw/scripts/db-conn.sh sql`(交互式)或 `~/.openclaw/scripts/db-conn.sh sql --sql "select database()"`
|
||||
- 该脚本自动从 `~/.openclaw/.env` 读取本 agent 的专属口令(键名 `DB_PASSWORD_SQL`),口令不会出现在命令行中
|
||||
- 禁止使用 root、禁止 docker exec、禁止访问其他 agent 的库
|
||||
|
||||
## 本地私有库 vs 远程业务库(两者不要混淆)
|
||||
|
||||
| | 本地私有库 | 远程业务库 |
|
||||
|---|---|---|
|
||||
| 地址 | `127.0.0.1:3306`(本机 docker MySQL) | `101.34.227.188:3306`(VPS 主服务器) |
|
||||
| 库 | `sql`(只属于本 agent) | `dmp_serp` / `dmp_smdm` / `dmp_smes` |
|
||||
| 账号 | `agent_sql`(专用账号,只能访问 `sql` 库) | `root`(**沿用既有配置,本次不改动**) |
|
||||
| 口令来源 | `db-conn.sh` 自动读 `.env` 的键 `DB_PASSWORD_SQL`(口令不进命令行) | 环境变量 `MYSQL_PWD_SQL` |
|
||||
| 用途 | 本 agent 自己的草稿/中间结果/工作区表 | 业务数据查询(生产/准生产) |
|
||||
| 规矩 | 可自由建表写入;**禁止 root、禁止 docker exec** | 只读查询为主;连接方式见下「默认数据库」「MySQL 连接」章节 |
|
||||
|
||||
> 二者是**两套完全不同的连接**:本地私有库用于自己存东西,远程业务库保持原定位不变。
|
||||
|
||||
## 相关
|
||||
|
||||
- [Agent workspace](/concepts/agent-workspace)
|
||||
|
||||
Reference in New Issue
Block a user