ClawSkills logoClawSkills

MYSQL QUERY

通过自动 SSH 隧道管理查询项目数据库。当您需要对已配置的数据库执行 SQL 查询时使用,特别是那些可访问

介绍

# 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 隧道的本地端口应对每个数据库保持唯一

更多产品