mcpField
M
mycli

mycli

官方
github.com数据库与数据12.0kmycli今天更新
代码仓库访问官网

关于 mycli

mycli 是 MySQL 和 MariaDB 的交互式命令行工具,提供智能自动补全、语法高亮和格式化的查询结果。通过直观的终端界面简化数据库操作,支持脚本化输出便于集成到工作流中。

主要功能

  1. 01实时自动补全数据库名、表名和 SQL 关键字
  2. 02带语法高亮的代码编辑和查询输出
  3. 03交互式查询执行与格式化结果展示
  4. 04支持脚本化和批量操作

适用场景

  1. 01快速查询和检查 MySQL 数据库中的数据
  2. 02在开发过程中交互式编写和调试 SQL 查询
  3. 03构建自动化数据库管理脚本和工作流

安装

选择你的系统或包管理器,复制命令到终端运行。

$
pipx install mycli

安装完成后运行mycli --version确认安装成功。

命令示例

常用命令按使用顺序排列。

01
mycli -h localhost -u root
02
mycli my_database

详细介绍

mycli

Build Status PyPI - Version License

功能丰富的 MySQL 终端客户端,支持自动补全、语法高亮和数据帧。

主页:https://mycli.net

文档:https://mycli.net/docs

补全

补全动图

已知 Mycli 兼容以下数据库:

Postgres 的同类工具:

2.x 版本

2.0.0 版本包含不兼容变更!

快速开始

如果你已经了解如何安装 Python 包,可以通过 pip 安装 mycli。此软件包始终保持最新。

pip install --upgrade 'mycli[all]'

或者,在 macOS 上(pygments 为可选项):

brew update && brew install mycli pygments

或者,在 Debian 或 Ubuntu 上(fzf 和 pygments 为可选项):

apt-get install mycli fzf python3-pygments

无需安装即可试用:uv

uv tool run 'mycli[all]' --help

无需安装即可试用:Docker

Dockerhub 上的镜像已经过时!建议使用 ghcr.io 镜像。镜像中包含一个示例数据库:

docker run --pull=always -it ghcr.io/dbcli/mycli:latest

同一镜像也适用于 macOS container:

container run -it ghcr.io/dbcli/mycli:latest

功能

  • 输入时自动补全 SQL 关键字,以及表、视图、列、枚举等内容!
  • 智能补全会根据上下文提供建议:
    • SELECT * FROM tab 只显示表名。
    • SELECT * FROM users WHERE tab 只显示列名。
  • 使用 fzf 模糊搜索历史记录。
  • 使用 fzf 或其他工具浏览输出。
  • 使用 Pygments 进行语法高亮。
  • 多行查询。
  • 使用 Jinja 和位置参数或命名参数保存常用查询。使用以下命令保存查询:
    /fs alias <query>
    
    并使用以下命令执行:
    /f alias --key=value
    
  • 统计 SQL 语句执行和表格渲染所用的时间。
  • 支持多种表格结果输出格式。
  • 使用 $>、$>> 和 $| 运算符进行类 Shell 的尾随重定向。
  • 使用 .| 进行 Polars 数据帧转换和绘图,并使用 .> 保存为 Parquet。
  • 使用 /llm,基于架构上下文查询 LLM。
  • 在系统密钥环中存储密码。
  • 提供 UTF-8 连接类型和 SSL 等现代默认设置。
  • 集成:SSH、Kubernetes、Vault 和 Boundary。

Mycli 首次运行时会创建配置文件 ~/.myclirc;你可以使用该文件中的选项配置上述功能及更多内容。

某些功能只能通过按键绑定使用。

用法

请参阅

mycli --help

贡献

如果您有兴趣为此项目做贡献,首先,我们想向您致以诚挚的谢意。我们编写了一份简短的文档,介绍如何在开发环境中运行 mycli。

https://github.com/dbcli/mycli/blob/main/CONTRIBUTING.md

其他安装说明

Shell 补全

如果通过 Homebrew 安装,Shell 补全可能已经配置好。

否则,要为当前会话配置 Shell 补全,请执行类似以下的命令:

eval "$(mycli --completions SHELL)"

根据您选择的 Shell,将 SHELL 替换为 bash、zsh 或 fish。

要永久安装 Shell 补全,可以将上述命令添加到 ~/.bashrc、~/.zshrc 或 ~/.config/fish/config.fish。为缩短登录时间,可以将 mycli --completions SHELL 的输出保存到文件中,并通过 source 加载。

其他安装方式

以下是一些由操作系统软件包维护者提供、但不由我们团队管理的 mycli 替代安装方式。

注意:操作系统软件包可能会严重过时。

如果已安装 fzf 软件包,可将其用于模糊历史记录搜索,也可通过 \x 特殊命令将其用作输出“浏览器”。pygmentize 可用于模糊历史记录搜索中的语法高亮。也需要安装 less 软件包,不过它几乎总是已经安装。

Arch、Manjaro

您可以安装 AUR 中提供的 mycli 软件包。fzf 和 python-pygments 为可选依赖,但建议安装:

yay -S mycli fzf python-pygments
Debian、Ubuntu

在 Debian 和 Ubuntu 发行版上,您可以使用 apt 轻松安装 mycli 软件包。fzf 和 python3-pygments 软件包为可选依赖,但建议安装:

apt-get install mycli fzf python3-pygments
Fedora

Fedora 提供了 mycli 软件包;使用 dnf 安装即可。fzf 和 python-pygments 软件包为可选依赖,但建议安装:

dnf install mycli fzf python-pygments
Windows
选项 1:原生 Windows

安装 less 分页器,例如运行 scoop install less。

安装 fzf 模糊查找工具,例如运行 scoop install fzf。

请按照这篇博客文章中的说明操作:https://web.archive.org/web/20221006045208/https://www.codewall.co.uk/installing-using-mycli-on-windows/

mycli 使用的库兼容 Windows,但根据测试套件,仍存在一些已知限制。基本功能无需任何修改即可使用,但目前不支持此配置。

欢迎提交 PR,解决 Windows 上的不足!

选项 2:WSL

与原生 Windows 相比,Mycli 与 WSL 的兼容性更好,但仍无法做到 100% 完美。这是在 Windows 上使用 mycli 的一个不错选择。

使用 WSL 时,您可能会使用 Ubuntu 发行版;在这种情况下,可以通过以下命令安装建议的依赖项:

apt-get install fzf python3-pygments

然后可以通过 apt-get 或 pip(推荐)安装 mycli:

pip install --upgrade 'mycli[all]'

欢迎提交 PR,完善 WSL 支持!

致谢

本项目通过 Kickstarter 获得了资金支持。感谢支持本项目的赞助者。

特别感谢 Jonathan Slenders 创建了 Python Prompt Toolkit。它确实是让此应用成为可能的核心库。Jonathan 还在应用开发期间提供了宝贵的反馈和支持。

命令行选项解析和错误消息输出使用了 Click。

感谢 PyMysql 提供纯 Python 的 MySQL 数据库适配器。

兼容性

Mycli 已在 macOS(完整)、Linux(完整)、Windows(部分)和 WSL(部分)上进行测试,并且需要 Python 3.11 或更高版本。

要连接早于 5.5 的 MySQL 版本,您可能需要在 ~/.myclirc 中设置以下内容:

[connection]
# character set for connections without --charset being set at the CLI
default_character_set = utf8

或者在调用 mycli 时使用 --charset=utf8。

配置和使用

有关 mycli 的使用和配置的更多信息,请查看我们的文档。

常见主题包括:

许可证

Mycli 是根据 BSD 3-Clause 许可证提供的开源软件。

Mycli Docker 镜像和 git 仓库包含一份由 Oracle 根据 Creative Commons Attribution-Share Alike 3.0 Unported 许可证提供的 employees 示例数据库。

评论

支持 Markdown