Skip to content

la3rence/yearning-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yearning-cli

Yearning MySQL 审计平台命令行工具。无需打开 Web 界面,直接在终端执行 SQL 查询、浏览元数据、导出结果。

安装

uv sync

安装后 sql 命令全局可用。

配置

1. 环境变量(Yearning 连接信息)

export YEARNING_URL=http://your-yearning-server
export YEARNING_USER=your_username
export YEARNING_PASS=your_password

2. 默认数据源(~/.sqlrc)

创建 ~/.sqlrc 设置默认数据源和数据库,避免每次手动指定:

source: 你的数据源名称
database: 你的数据库名

配置后,所有子命令会自动使用这些默认值。

命令速查

登录

sql login

浏览元数据

sql sources                   # 列出所有数据源
sql sources --idc 生产         # 按 IDC 筛选
sql databases                 # 列出默认数据源的数据库
sql databases "数据源名称"     # 列出指定数据源的数据库
sql tables                    # 列出默认库的表
sql tables "数据源" 数据库名   # 列出指定库的表

执行查询

sql query 'SELECT * FROM some_table LIMIT 10'
sql query 'SELECT ...' "数据源" 数据库名   # 覆盖默认值
sql query 'SELECT ...' --json              # JSON 输出
sql query 'SELECT ...' --timeout 60        # 超时 60 秒

导出结果到 ~/Downloads/

sql query 'SELECT ...' -o              # 默认 xlsx
sql query 'SELECT ...' -o csv          # CSV 格式
sql query 'SELECT ...' -o json         # JSON 格式

交互式 SQL Shell

sql shell
sql shell "数据源名称" 数据库名         # 覆盖默认值

Shell 内快捷命令:

命令 说明
\s / \d 列出所有数据库
\s dbname 切换数据库
\t 列出当前库所有表
exit / quit / \q 退出

MySQL 协议代理

启动本地代理服务器,让 DBeaver/Navicat/MySQL CLI 等客户端通过 Yearning 执行查询:

sql proxy                    # 启动代理(默认端口 3307)
sql proxy --port 3308        # 自定义端口
sql proxy -v                 # 详细日志

连接方式:

# MySQL CLI
mysql -h 127.0.0.1 -P 3307 -u 数据源名 数据库名

# DBeaver / Navicat 等图形客户端
# Host: 127.0.0.1  Port: 3307  Username: 数据源名称  Password: 留空

代理参数:

参数 说明 默认值
--host 绑定地址 127.0.0.1
--port 监听端口 3307
--source 数据源名称或 ID 从 ~/.sqlrc 读取
--database 默认数据库名 从 ~/.sqlrc 读取
--url Yearning URL 从环境变量读取
--user 要求认证的用户名
--password 要求的认证密码

调试

任意命令加 -v--verbose 查看调试信息:

sql query 'SELECT 1' -v

工作原理

  • 通过 HTTP API 登录 Yearning 获取 Bearer Token
  • 查询前自动创建查询工单(支持自动审批模式)
  • 通过 WebSocket + msgpack 协议执行 SQL 并获取结果
  • Token 持久化到本地,后续命令自动复用
  • sql proxy 将 MySQL 协议转换为 Yearning API 调用,兼容各类 MySQL 客户端

About

Yearning 的 CLI 客户端,支持 MySQL TCP 代理 Yearning WebSocket 查询。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages