Project Icon

dblab

多数据库支持的轻量级交互式终端管理工具

dblab是一个轻量级的交互式终端数据库管理工具,支持PostgreSQL、MySQL、SQLite3、Oracle和SQL Server。该工具使用Go语言开发,可跨平台运行于OSX、Linux和Windows系统。dblab具有简单安装、零依赖和便携性等特点,支持多种连接方式和SSL安全连接,并提供直观的导航功能,适合开发者快速操作和管理多种数据库。

dblab 集成测试 单元测试 发布

dblab标志

PostgreSQL、MySQL、SQLite3、Oracle和SQL Server的交互式客户端。


文档: https://dblab.danvergara.com


目录

概述

dblab是一个快速轻量的交互式终端UI应用程序,用于PostgreSQL、MySQL和SQLite3, 使用Go语言编写,可在OSX、Linux和Windows机器上运行。选择Go进行后端开发的主要原因 是利用编译器为多个平台生成零依赖二进制文件的能力。dblab的创建是为了构建一个非常简单且便携的 应用程序,用于处理本地或远程的PostgreSQL/MySQL/SQLite3/Oracle/SQL Server数据库。

特性

  • 跨平台支持OSX/Linux/Windows 32/64位
  • 简单安装(以单一二进制文件分发)
  • 零依赖。

安装

如果你需要使用SQLite3,请使用下面列出的适当bash脚本安装启用CGO的二进制文件。 上述注释已过时,不再需要CGO。将会有一个单一的二进制文件能够处理所有支持的客户端。

Homebrew

也适用于Linux。

$ brew install danvergara/tools/dblab

或者

$ brew tap danvergara/tools
$ brew install dblab

二进制发布(Linux/OSX/Windows)

你可以从发布页面手动下载二进制发布版本。

自动安装/更新

不要忘记始终验证你通过管道传输到bash的内容

使用我们的bash脚本安装二进制文件:

curl https://raw.githubusercontent.com/danvergara/dblab/master/scripts/install_update_linux.sh | bash

帮助

dblab是一个基于终端UI的交互式数据库客户端,用于Postgres、MySQL和SQLite3。

用法:
  dblab [标志]
  dblab [命令]

可用命令:
  help        关于任何命令的帮助
  version     项目版本

标志:
      --cfg-name string                   数据库配置名称部分
      --config                            从配置文件获取连接数据(默认位置为:当前目录、$HOME/.dblab.yaml或$XDG_CONFIG_HOME/.dblab.yaml)
      --db string                         数据库名称
      --driver string                     数据库驱动
      --encrypt string                    [strict|disable|false|true] 客户端和服务器之间发送的数据是否加密
  -h, --help                              dblab的帮助
      --host string                       服务器主机名或IP
      --limit uint                        表内容查询结果集的大小(应大于零,否则应用程序将出错)(默认100)
      --pass string                       用户密码
      --port string                       服务器端口
      --schema string                     数据库模式(仅限postgres)
      --socket string                     Unix套接字文件的路径
      --ssl string                        SSL模式
      --ssl-verify string                 [enable|disable]或[true|false] 启用服务器的ssl验证
      --sslcert string                    此参数指定客户端SSL证书的文件名,替换默认的~/.postgresql/postgresql.crt
      --sslkey string                     此参数指定客户端证书使用的秘密密钥的位置。它可以指定一个文件名,用于替代默认的~/.postgresql/postgresql.key,或者可以指定从外部"引擎"获得的密钥
      --sslpassword string                此参数指定sslkey中指定的秘密密钥的密码
      --sslrootcert string                此参数指定包含SSL证书颁发机构(CA)证书的文件名。默认为~/.postgresql/root.crt
      --timeout string                    以秒为单位(默认为0表示无超时),设置为0表示无超时。建议设置为0并使用上下文来管理查询和连接超时
      --trace-file string                 跟踪日志的文件名
      --trust-server-certificate string   [false|true] 是否检查服务器证书
  -u, --url string                        数据库连接字符串
      --user string                       数据库用户
      --wallet string                     Oracle自动登录钱包的路径

使用"dblab [命令] --help"获取有关命令的更多信息。

使用方法

你可以不传递任何标志或参数启动应用程序,系统会要求你输入连接数据。 动图

$ dblab --host localhost --user myuser --db users --pass password --ssl disable --port 5432 --driver postgres --limit 50
$ dblab --db path/to/file.sqlite3 --driver sqlite
$ dblab --host localhost --user system --db FREEPDB1 --pass password --port 1521 --driver oracle --limit 50
$ dblab --host localhost --user SA --db msdb --pass '5@klkbN#ABC' --port 1433 --driver sqlserver --limit 50

也支持连接URL方案:

$ dblab --url 'postgres://user:password@host:port/database?sslmode=[mode]'
$ dblab --url 'mysql://user:password@tcp(host:port)/db'
$ dblab --url 'file:test.db?_pragma=foreign_keys(1)&_time_format=sqlite'
$ dblab --url 'oracle://user:password@localhost:1521/db'
$ dblab --url 'sqlserver://SA:myStrong(!)Password@localhost:1433?database=tempdb&encrypt=true&trustservercertificate=false&connection+timeout=30'

如果你使用PostgreSQL,你可以选择定义要使用的模式,默认值为public

$ dblab --host localhost --user myuser --db users --pass password --schema myschema --ssl disable --port 5432 --driver postgres --limit 50
$ dblab --url postgres://user:password@host:port/database?sslmode=[mode] --schema myschema

根据#125中的请求,集成了对MySQL/MariaDB套接字的支持。

$ dblab --url "mysql://user:password@unix(/path/to/socket/mysql.sock)/dbname?charset=utf8"
$ dblab --socket /path/to/socket/mysql.sock --user user --db dbname --pass password --ssl disable --port 5432 --driver mysql --limit 50

通过Unix套接字连接Postgres:

$ dblab --url "postgres://user:password@/dbname?host=/path/to/socket"
$ dblab --socket /path/to/socket --user user --db dbname --pass password --ssl disable --port 5432 --driver postgres --limit 50

现在可以确保与PostgreSQL数据库的SSL连接。已添加SSL相关参数,如--sslcert--sslkey--sslpassword--sslrootcert。有关如何使用这些连接标志的更多信息可以在这里找到。

dblab --host  db-postgresql-nyc3-56456-do-user-foo-0.fake.db.ondigitalocean.com --user myuser --db users --pass password --schema myschema --port 5432 --driver postgres --limit 50 --ssl require --sslrootcert ~/Downloads/foo.crt

配置

每次输入之前的标志很繁琐,所以dblab提供了两个标志来帮助解决这个问题:--config--cfg-name

dblab会寻找一个名为.dblab.yaml的文件。目前,你可以在三个地方放置配置文件:

  • $XDG_CONFIG_HOME ($XDG_CONFIG_HOME/.dblab.yaml)
  • $HOME ($HOME/.dblab.yaml)
  • . (运行命令行工具的当前目录)

如果你想使用这个功能,--config是必需的,而--cfg-name可以省略。配置文件可以在database字段下存储一个或多个数据库连接部分。database是一个数组,之前是一个只能存储单个连接部分的对象。

我们强烈建议你从v0.18.0开始采用新格式。--cfg-name取所需数据库部分的名称进行连接。它可以省略,其默认值将是数组中的第一项。

v0.21.0开始,配置文件中支持ssl连接选项。

# 默认:test
$ dbladb --config

$ dblab --config --cfg-name "prod"

.dblab.yaml示例:

database:
  - name: "test"
    host: "localhost"
    port: 5432
    db: "users"
    password: "password"
    user: "postgres"
    driver: "postgres"
    # 可选
    # 仅限postgres
    # 默认值:public
    schema: "myschema"
  - name: "prod"
    # 示例端点
    host: "mydb.123456789012.us-east-1.rds.amazonaws.com"
    port: 5432
    db: "users"
    password: "password"
    user: "postgres"
    schema: "public"
    driver: "postgres"
    ssl: "require"
    sslrootcert: "~/.postgresql/root.crt."
  - name: "oracle"
    host: "localhost"
    port: 1521
    db: "FREEPDB1 "
    password: "password"
    user: "system"
    driver: "oracle"
    ssl: "enable"
    wallet: "path/to/wallet"
    ssl-verify: true
  - name: "sqlserver"
    driver: "sqlserver"
    host: "localhost"
    port: 1433
    db: "msdb"
    password: "5@klkbN#ABC"
    user: "SA"
# 应大于0,否则应用程序将出错
limit: 50

或者对于sqlite:

database:
  - name: "prod"
    db: "path/to/file.sqlite3"
    driver: "sqlite"

只有 hostssl 字段是可选的。它们的默认值分别是 127.0.0.1disable

导航

如果查询面板处于活动状态,输入所需的查询并按 Ctrl+Space 可在下方的行面板中查看结果。 否则,你可能位于表格面板,可以使用 UpDown 箭头键(或分别使用 kj 键)进行导航。如果想查看表格的行,按 Enter。要查看表格的结构,将光标定位在 rows 面板上并按 Ctrl+S 切换到 structure 面板,再次按 Ctrl+S 可切换回去。 同样,按 Ctrl+F 可在 rowsconstraints 面板之间来回切换。

现在,有一个菜单可以通过点击所需选项在隐藏视图之间导航:

你可能已经注意到,导航功能已经添加,所以每次查询列出的表格内容时,结果集都会分页显示。这使用户能够处理大型表格,优化资源使用。 只需点击 BACKNEXT 按钮即可前后翻页。

快捷键

描述
Ctrl+Space如果查询面板处于活动状态,执行查询
Enter如果表格面板处于活动状态,在行面板上列出所有行作为结果集,并在结构面板上显示表格结构
Ctrl+S如果行面板处于活动状态,切换到模式面板。反之亦然
Ctrl+F如果行面板处于活动状态,切换到约束视图。反之亦然
Ctrl+I如果行面板处于活动状态,切换到索引视图。反之亦然
Ctrl+H切换到左侧面板
Ctrl+J切换到下方面板
Ctrl+K切换到上方面板
Ctrl+L切换到右侧面板
向上箭头面板上结果集的下一行。视图:rows、table、constraints、structure 和 indexes
k面板上结果集的下一行。视图:rows、table、constraints、structure 和 indexes
向下箭头面板上结果集的上一行。视图:rows、table、constraints、structure 和 indexes
j面板上结果集的上一行。视图:rows、table、constraints、structure 和 indexes
向右箭头面板上的水平滚动。视图:rows、constraints、structure 和 indexes
l面板上的水平滚动。视图:rows、constraints、structure 和 indexes
向左箭头面板上的水平滚动。视图:rows、constraints、structure 和 indexes
h面板上的水平滚动。视图:rows、constraints、structure 和 indexes
0将光标移到当前行的开头。视图:rows、constraints、structure 和 indexes
$将光标移到当前行的末尾。视图:rows、constraints、structure 和 indexes
g将光标移到面板数据集的顶部。视图:rows、constraints、structure 和 indexes
G将光标移到面板数据集的底部。视图:rows、constraints、structure 和 indexes
PgUp将光标移到面板数据集的顶部。视图:rows、constraints、structure 和 indexes
PgDn将光标移到面板数据集的底部。视图:rows、constraints、structure 和 indexes
Ctrl+c退出

贡献

  • 复刻该仓库
  • 为新功能或错误修复创建一个新的功能分支
  • 提交你的更改
  • 执行测试套件
  • 推送你的代码并开启一个新的拉取请求
  • 使用 issues 提出任何问题
  • 查看 wiki 获取额外文档

许可证

MIT 许可证 (MIT)。更多详情请查看 LICENSE 文件。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号