介绍
# Database Query
## 概述
通过集中式配置文件查询数据库,并自动管理 SSH 隧道。处理连接详情、SSH 隧道的建立/拆除以及查询执行。
## 配置
### 设置
1. **创建配置文件** 于 `~/.config/clawdbot/db-config.json`: ```bash mkdir -p ~/.config/clawdbot # Copy example config and edit cp /usr/lib/node_modules/clawdbot/skills/db-query/scripts/config.example.json ~/.config/clawdbot/db-config.json ```
2. **添加数据库条目**,包含以下字段: - `name`:用于查找数据库的描述(必填) - `host`:数据库主机(必填) - `port`:数据库端口(默认:3306) - `database`:数据库名称(必填) - `user`:数据库用户(必填) - `password`:数据库密码(必填) - `ssh_tunnel`:可选的 SSH 隧道配置
3. **SSH 隧道配置**(如需要): - `enabled`:true/false - `ssh_host`:远程 SSH 主机 - `ssh_user`:SSH 用户名 - `ssh_port`:SSH 端口(默认:22) - `local_port`:转发的本地端口(例如 3307) - `remote_host`:SSH 后端的远程数据库主机(默认:localhost) - `remote_port`:远程数据库端口(默认:3306)
### 配置示例
```json { "databases": [ { "name": "生产用户库", "host": "localhost", "port": 3306, "database": "user_db", "user": "db_user", "password": "secret", "ssh_tunnel": { "enabled": true, "ssh_host": "prod.example.com", "ssh_user": "deploy", "local_port": 3307 } } ] } ```
## 用法
### 列出数据库
```bash python3 /usr/lib/node_modules/clawdbot/skills/db-query/scripts/db_query.py --list ```
### 查询数据库
```bash python3 /usr/lib/node_modules/clawdbot/skills/db-query/scripts/db_query.py \ --database "生产用户库" \ --query "SELECT * FROM users LIMIT 10" ```
该脚本将: 1. 通过匹配配置中的描述来查找数据库 2. 启动 SSH 隧道(如果已配置) 3. 执行查询 4. **自动关闭 SSH 隧道**(这对清理工作很重要)
### 使用自定义配置路径
```bash python3 /usr/lib/node_modules/clawdbot/skills/db-query/scripts/db_query.py \ --config /path/to/custom-config.json \ --database "test" \ --query "SHOW TABLES" ```
## 环境要求
- MySQL 客户端:`apt install mysql-client` 或同等工具 - SSH 客户端:通常在 Linux/Mac 上预装 - Python 3.6+
## 注意事项
- SSH 隧道会在查询执行后自动关闭 - 使用 `--list` 查看所有已配置的数据库及其描述 - 数据库搜索是对 `name` 字段进行不区分大小写的部分匹配 - SSH 隧道的本地端口应对每个数据库保持唯一