feat: OpsxDB 桌面数据库客户端首版入库

含工作台/连库多引擎字段与 SSH·SSL、结果编辑、Redis 键浏览、
Tauri 桌面与 docs/落地页;排除本地构建产物与 sidecar 二进制。
This commit is contained in:
logan committed 2026-09-19 22:43:45 +08:00
commit f8740d27f7
240 files changed
+21625

No files matched your search

+164
View File
@@ -0,0 +1,164 @@
# OpsxDB 测试数据库环境
联调 / 回归用的 Docker 库。**不要同时开多个**,否则占内存、干扰性能测试。
## a–e 对照
| 代号 | 服务 | 宿主机端口 | 账号 | 密码 | 默认库 |
|------|------|------------|------|------|--------|
| **a** | MySQL 8 | `3306` | `root` / `opsx` | `Demo@123` | `demo` |
| **b** | MariaDB 11 | `3307` | `root` / `opsx` | `Demo@123` | `demo` |
| **c** | PostgreSQL 16 | `5432` | `opsx` | `Demo@123` | `demo` |
| **d** | SQL Server 2022 | `1433` | `sa` | `Demo@12345` | 先建 `demo` |
| **e** | Oracle XE 21 | `1521` | `opsx`(或 system) | `Demo@123` | Service `XEPDB1` |
| **f** | Redis 7 | `6379` | — | — | db `0` |
| **g** | ZooKeeper 3.9 | `2181` | — | — | 无认证 |
| **h** | Elasticsearch 8.15 | `9200` | — | — | 安全已关,本机联调 |
| **i** | InfluxDB 2.7 | `8086` | `opsx` | `Demo@123` | org `opsx` / bucket `demo` / token `opsxdb-demo-token` |
SQL Server 首次进库:
```sql
CREATE DATABASE demo;
```
## 常用命令
```bash
cd /Users/logan/devops/opsxdb/tests
./dbctl.sh pull # 国内加速拉取 ZK / ES / InfluxDB
./dbctl.sh up a # 或 up mysql —— 只起这一个
./dbctl.sh up g # ZooKeeper :2181
./dbctl.sh up h # Elasticsearch :9200(吃内存)
./dbctl.sh up i # InfluxDB :8086
./dbctl.sh up c # 只开 PostgreSQL(会先停掉其它测试库)
./dbctl.sh status
./dbctl.sh logs mysql
./dbctl.sh down mysql # 停一个(保留数据卷)
./dbctl.sh down # 停全部
./dbctl.sh reset oracle # 删卷重来(镜像大,慎用)
```
## 在 OpsxDB 里怎么连
1. 仓库根目录 `./run.sh web` → http://127.0.0.1:5174
2. 新建连接 → 选驱动 → 填上表参数 → 测试连接
3. 打开 `demo`,执行 `SELECT * FROM users;`(MySQL / MariaDB / PG 已有种子表)
## 注意
- 一次只 `up` 一个;`dbctl.sh up` 发现其它测试库在跑会先停掉。
- Oracle / SQL Server / Elasticsearch 镜像大、启动慢,只在验证对应项时再开。
- `down` 不删卷,`reset` 才删。
- 镜像默认走 DaoCloud:`DOCKER_MIRROR=docker.m.daocloud.io`(失败再试 `docker.1ms.run`)。
ZooKeeper / ES / Influx 在 OpsxDB 里:
| 类型 | 主机 | 端口 | 说明 |
|------|------|------|------|
| ZooKeeper | 127.0.0.1 | 2181 | 用户密码留空 |
| Elasticsearch | 127.0.0.1 | 9200 | 用户密码留空(xpack 已关) |
| InfluxDB | 127.0.0.1 | 8086 | 用户 `opsx` / 密码 `Demo@123`,库名填 `demo` |
### demo
```
## ---------- 先拉镜像 ---------- ##
docker pull mysql:8
docker pull mariadb:11
docker pull postgres:16
# 国内加速拉完打短 tag,不要把 daocloud/mcr 前缀留在本地名里
# mcr.m.daocloud.io/mssql/server:2022-latest → mssql/server:2022-latest
# docker.m.daocloud.io/library/zookeeper:3.9 → zookeeper:3.9
./dbctl.sh pull mssql
./dbctl.sh pull new
docker pull gvenzl/oracle-xe:21-slim
docker pull redis:7-alpine
docker pull ubuntu:24.04
docker pull eclipse-temurin:17-jdk
docker pull eclipse-temurin:17-jre
docker pull golang:1.25-alpine
docker pull nginx:alpine
docker pull maven:3.9-eclipse-temurin-17
## ---------- 后台常驻(数据库 / 缓存) ---------- ##
# MySQL 8
docker run -d --name demo-mysql --restart unless-stopped \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=Demo@123 \
-e MYSQL_DATABASE=demo \
mysql:8
# MariaDB 11(宿主机 3307,避免和 MySQL 抢端口)
docker run -d --name demo-maria --restart unless-stopped \
-p 3307:3306 \
-e MARIADB_ROOT_PASSWORD=Demo@123 \
-e MARIADB_DATABASE=demo \
mariadb:11
# PostgreSQL 16
docker run -d --name demo-pg --restart unless-stopped \
-p 5432:5432 \
-e POSTGRES_PASSWORD=Demo@123 \
-e POSTGRES_DB=demo \
postgres:16
# SQL Server 2022
docker run -d --name demo-mssql --restart unless-stopped \
-p 1433:1433 \
-e ACCEPT_EULA=Y \
-e MSSQL_SA_PASSWORD='Demo@12345' \
mssql/server:2022-latest
# Oracle XE 21(镜像大,第一次慢)
docker run -d --name demo-oracle --restart unless-stopped \
-p 1521:1521 \
-e ORACLE_PASSWORD=Demo@123 \
gvenzl/oracle-xe:21-slim
# Redis 7
docker run -d --name demo-redis --restart unless-stopped \
-p 6379:6379 \
redis:7-alpine
# ZooKeeper / ES / Influx 请用 ./dbctl.sh pull && ./dbctl.sh up g|h|i(国内加速)
## ---------- 测试 ---------- ##
# Ubuntu 24.04 LTS
docker run -it --rm ubuntu:24.04 bash
# JDK 17
docker run -it --rm -v "$PWD":/app -w /app eclipse-temurin:17-jdk java -version
# Maven + JDK 17
docker run -it --rm -v "$PWD":/app -w /app maven:3.9-eclipse-temurin-17 mvn -v
# Go 1.25
docker run --rm golang:1.25-alpine go version
docker run --rm -v "$PWD":/src -w /src golang:1.25-alpine go build -v .
# Nginx 试一下
docker run -d --name demo-nginx -p 8080:80 nginx:alpine
```
## 驱动验收(本机)
| 驱动 | 连接 | 库表 | CRUD | 备注 |
|------|------|------|------|------|
| MySQL | OK | OK | OK | `./dbctl.sh up a` |
| MariaDB | OK | OK | OK | `./dbctl.sh up b` 端口 3307 |
| PostgreSQL | OK | OK | OK | `./dbctl.sh up c` 用户 opsx |
| SQL Server | OK | OK | OK | `./dbctl.sh up d` sa / Demo@12345(Apple Silicon 模拟较慢) |
| SQLite | OK | OK | OK | database 填文件路径 |
| Redis | OK | OK | OK | `./dbctl.sh up f`;编辑器执行 `PING`/`GET`/`SET`/`DEL`/`KEYS` |
| ZooKeeper | 镜像已备 | — | — | `./dbctl.sh up g`;驱动未就绪,`:2181` 无认证 |
| Elasticsearch | 镜像已备 | — | — | `./dbctl.sh up h`;驱动未就绪,`:9200` 已关 xpack |
| InfluxDB | 镜像已备 | — | — | `./dbctl.sh up i`;驱动未就绪,opsx / Demo@123 / bucket demo |
| Oracle | 代码就绪 | — | 本机未跑通 | Apple Silicon 上 `gvenzl/oracle-xe` 报 ORA-00442,需 x86 环境或真库 |
冒烟脚本:`./tests/verify-crud.sh`(一次只起一个库)。