|
| 1 | +# 数据源与 SQL |
| 2 | + |
| 3 | +Chat2DB CLI 可以通过本机 CLI runtime 读取数据源、测试连接、创建或维护数据源,并执行 SQL 查询。默认使用 `--edition pro`,操作 Local 时请显式加 `--edition local`。 |
| 4 | + |
| 5 | +开始前建议确认状态: |
| 6 | + |
| 7 | +```bash |
| 8 | +chat2db version --json |
| 9 | +chat2db status --json |
| 10 | +``` |
| 11 | + |
| 12 | +## 列出数据源 |
| 13 | + |
| 14 | +```bash |
| 15 | +chat2db db datasources --edition pro --json |
| 16 | +``` |
| 17 | + |
| 18 | +查看单个数据源: |
| 19 | + |
| 20 | +```bash |
| 21 | +chat2db db datasource --data-source-id <data-source-id> --json |
| 22 | +``` |
| 23 | + |
| 24 | +这些命令是只读操作,不会修改数据源。 |
| 25 | + |
| 26 | +## 测试连接 |
| 27 | + |
| 28 | +测试已保存的数据源: |
| 29 | + |
| 30 | +```bash |
| 31 | +chat2db db connection-test --data-source-id <data-source-id> --json |
| 32 | +``` |
| 33 | + |
| 34 | +使用主机字段测试 MySQL: |
| 35 | + |
| 36 | +```bash |
| 37 | +chat2db db connection-test \ |
| 38 | + --db-type MYSQL \ |
| 39 | + --host localhost \ |
| 40 | + --port 3306 \ |
| 41 | + --database test \ |
| 42 | + --user root \ |
| 43 | + --password '<password>' \ |
| 44 | + --json |
| 45 | +``` |
| 46 | + |
| 47 | +使用 JDBC URL 测试: |
| 48 | + |
| 49 | +```bash |
| 50 | +chat2db db connection-test \ |
| 51 | + --db-type MYSQL \ |
| 52 | + --url 'jdbc:mysql://127.0.0.1:3306/test' \ |
| 53 | + --user root \ |
| 54 | + --password '<password>' \ |
| 55 | + --json |
| 56 | +``` |
| 57 | + |
| 58 | +不要在文档、截图或聊天记录里暴露真实密码。带凭据的 JDBC URL 也应当脱敏。 |
| 59 | + |
| 60 | +## 创建数据源 |
| 61 | + |
| 62 | +创建数据源会写入 Chat2DB 保存的数据源列表。建议先运行 `connection-test`,确认连接成功后再创建。 |
| 63 | + |
| 64 | +使用 JDBC URL 创建: |
| 65 | + |
| 66 | +```bash |
| 67 | +chat2db db datasource-create \ |
| 68 | + --db-type MYSQL \ |
| 69 | + --url 'jdbc:mysql://127.0.0.1:3306/test' \ |
| 70 | + --user root \ |
| 71 | + --password '<password>' \ |
| 72 | + --environment-id 1 \ |
| 73 | + --json |
| 74 | +``` |
| 75 | + |
| 76 | +使用主机字段创建: |
| 77 | + |
| 78 | +```bash |
| 79 | +chat2db db datasource-create \ |
| 80 | + --db-type MYSQL \ |
| 81 | + --host localhost \ |
| 82 | + --port 3306 \ |
| 83 | + --database test \ |
| 84 | + --user root \ |
| 85 | + --password '<password>' \ |
| 86 | + --environment-id 1 \ |
| 87 | + --json |
| 88 | +``` |
| 89 | + |
| 90 | +`environment-id` 常用值: |
| 91 | + |
| 92 | +| 值 | 含义 | |
| 93 | +| --- | --- | |
| 94 | +| `1` | TEST | |
| 95 | +| `2` | RELEASE | |
| 96 | + |
| 97 | +## 更新和删除数据源 |
| 98 | + |
| 99 | +更新别名: |
| 100 | + |
| 101 | +```bash |
| 102 | +chat2db db datasource-update \ |
| 103 | + --data-source-id <data-source-id> \ |
| 104 | + --alias prod-mysql \ |
| 105 | + --json |
| 106 | +``` |
| 107 | + |
| 108 | +删除数据源: |
| 109 | + |
| 110 | +```bash |
| 111 | +chat2db db datasource-delete \ |
| 112 | + --data-source-id <data-source-id> \ |
| 113 | + --yes \ |
| 114 | + --json |
| 115 | +``` |
| 116 | + |
| 117 | +`datasource-delete` 需要 `--yes`。删除前请确认数据源 ID 和 edition,避免误删 Pro / Local 中的其他数据源。 |
| 118 | + |
| 119 | +## 读取数据库元数据 |
| 120 | + |
| 121 | +列出数据库: |
| 122 | + |
| 123 | +```bash |
| 124 | +chat2db db databases --data-source-id <data-source-id> --json |
| 125 | +``` |
| 126 | + |
| 127 | +列出 schema: |
| 128 | + |
| 129 | +```bash |
| 130 | +chat2db db schemas \ |
| 131 | + --data-source-id <data-source-id> \ |
| 132 | + --database postgres \ |
| 133 | + --json |
| 134 | +``` |
| 135 | + |
| 136 | +列出表: |
| 137 | + |
| 138 | +```bash |
| 139 | +chat2db db tables \ |
| 140 | + --data-source-id <data-source-id> \ |
| 141 | + --database postgres \ |
| 142 | + --schema public \ |
| 143 | + --json |
| 144 | +``` |
| 145 | + |
| 146 | +查看表结构: |
| 147 | + |
| 148 | +```bash |
| 149 | +chat2db db table \ |
| 150 | + --data-source-id <data-source-id> \ |
| 151 | + --database postgres \ |
| 152 | + --schema public \ |
| 153 | + --table users \ |
| 154 | + --json |
| 155 | +``` |
| 156 | + |
| 157 | +## 执行 SQL |
| 158 | + |
| 159 | +查询第一页结果: |
| 160 | + |
| 161 | +```bash |
| 162 | +chat2db sql query \ |
| 163 | + --data-source-id <data-source-id> \ |
| 164 | + --database postgres \ |
| 165 | + --schema public \ |
| 166 | + --sql 'select 1' \ |
| 167 | + --page-no 1 \ |
| 168 | + --page-size 100 \ |
| 169 | + --json |
| 170 | +``` |
| 171 | + |
| 172 | +多结果集 SQL 可以用 `--result-set-id` 选择结果集: |
| 173 | + |
| 174 | +```bash |
| 175 | +chat2db sql query \ |
| 176 | + --data-source-id <data-source-id> \ |
| 177 | + --database postgres \ |
| 178 | + --schema public \ |
| 179 | + --sql 'select 1; select 2' \ |
| 180 | + --result-set-id 2 \ |
| 181 | + --no-row-number \ |
| 182 | + --json |
| 183 | +``` |
| 184 | + |
| 185 | +CLI 不会判断你的 SQL 是否会修改业务数据。对生产库执行 `insert`、`update`、`delete`、`truncate`、`drop` 等语句前,请先确认连接环境、数据库名和账号权限。 |
| 186 | + |
| 187 | +## 常见问题 |
| 188 | + |
| 189 | +### Runtime 不可用 |
| 190 | + |
| 191 | +先检查 runtime: |
| 192 | + |
| 193 | +```bash |
| 194 | +chat2db runtime status --edition pro --json |
| 195 | +``` |
| 196 | + |
| 197 | +必要时启动: |
| 198 | + |
| 199 | +```bash |
| 200 | +chat2db runtime start --edition pro --json |
| 201 | +``` |
| 202 | + |
| 203 | +### 连接失败 |
| 204 | + |
| 205 | +优先用 `connection-test` 验证 host、port、database、user、password 或 JDBC URL。连接失败通常来自网络不可达、数据库账号权限不足、驱动或 JDBC URL 不匹配。 |
| 206 | + |
| 207 | +### 查不到数据源 |
| 208 | + |
| 209 | +确认 edition 是否正确: |
| 210 | + |
| 211 | +```bash |
| 212 | +chat2db db datasources --edition pro --json |
| 213 | +chat2db db datasources --edition local --json |
| 214 | +``` |
0 commit comments