关于 mycli
mycli 是 MySQL 和 MariaDB 的交互式命令行工具,提供智能自动补全、语法高亮和格式化的查询结果。通过直观的终端界面简化数据库操作,支持脚本化输出便于集成到工作流中。
主要功能
- 01实时自动补全数据库名、表名和 SQL 关键字
- 02带语法高亮的代码编辑和查询输出
- 03交互式查询执行与格式化结果展示
- 04支持脚本化和批量操作
适用场景
- 01快速查询和检查 MySQL 数据库中的数据
- 02在开发过程中交互式编写和调试 SQL 查询
- 03构建自动化数据库管理脚本和工作流
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行mycli --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍
mycli
功能丰富的 MySQL 终端客户端,支持自动补全、语法高亮和数据帧。
已知 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 * FROMtab 只显示表名。SELECT * FROM users WHEREtab 只显示列名。
- 使用 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 示例数据库。