mycli について
mycli は MySQL と MariaDB のインタラクティブなコマンドラインクライアントで、インテリジェントな自動補完、構文強調表示、フォーマット済みのクエリ結果を提供します。直感的なターミナルインターフェースでデータベース操作を簡素化し、ワークフロー統合のためのスクリプト化出力をサポートしています。
主な機能
- 01データベース名、テーブル名、SQL キーワードのリアルタイム自動補完
- 02コード編集とクエリ出力の構文強調表示
- 03フォーマット済み結果表示によるインタラクティブなクエリ実行
- 04スクリプト化とバッチ操作のサポート
活用シーン
- 01MySQL データベースのデータを迅速にクエリして検査する
- 02開発中に SQL クエリをインタラクティブに作成およびデバッグする
- 03自動化されたデータベース管理スクリプトとワークフローを構築する
インストール
OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。
インストール後にmycli --versionを実行して確認します。
コマンド例
よく使うコマンドを使う順に並べています。
詳細
mycli
自動補完、構文ハイライト、データフレームに対応した高機能な 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 * FROMtab では、テーブル名のみが表示されます。SELECT * FROM users WHEREtab では、カラム名のみが表示されます。
- fzf を使ったあいまい検索による履歴検索。
- fzf などのツールを使った出力の閲覧。
- Pygments による構文ハイライト。
- 複数行のクエリ。
- Jinja を使った、位置指定パラメーターまたは名前付きパラメーターに対応するお気に入りクエリ。次のコマンドでクエリを保存します。
次のコマンドで実行します。/fs alias <query>/f alias --key=value - SQL 文の実行時間とテーブルの描画時間の計測。
- 表形式の結果に対応する豊富な出力形式。
$>、$>>、$|演算子を使った、シェル形式の末尾リダイレクト。.|を使った 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
追加のインストール手順
シェル補完
Homebrew 経由でインストールした場合、シェル補完はすでに設定されている場合があります。
それ以外の場合、現在のセッションでシェル補完を設定するには、次のようなコマンドを実行します。
eval "$(mycli --completions SHELL)"
使用するシェルに応じて、SHELL を bash、zsh、または fish に置き換えてください。
シェル補完を永続的にインストールするには、上記のコマンドを ~/.bashrc、~/.zshrc、または ~/.config/fish/config.fish に追加します。ログイン時間を短縮するには、mycli --completions SHELL の出力をファイルに保存し、source で読み込む方法があります。
その他のインストール方法
以下は、チームでは管理していませんが、OS パッケージのメンテナーが提供している mycli の代替インストール方法です。
注:OS パッケージはかなり古くなっている場合があります。
利用可能な場合、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 ネイティブ
たとえば scoop install less を実行して、less ページャーをインストールします。
たとえば scoop install fzf を実行して、fzf あいまい検索ツールをインストールします。
このブログ記事の手順に従ってください:https://web.archive.org/web/20221006045208/https://www.codewall.co.uk/installing-using-mycli-on-windows/
mycli で使用されているライブラリは Windows に対応していますが、テストスイートによると既知の制限があります。基本機能は変更なしで動作しますが、現時点ではこの構成はサポート対象のソフトウェアではありません。
Windows の問題を解決する PR を歓迎します!
オプション 2:WSL
Mycli は Windows ネイティブ環境よりも WSL との互換性が高いものの、完全ではありません。Windows で mycli を使用する場合に適した選択肢です。
WSL では、おそらく Ubuntu ディストリビューションを使用しているため、推奨される依存関係は次のコマンドでインストールできます。
apt-get install fzf python3-pygments
mycli は apt-get または pip(推奨)でインストールできます。
pip install --upgrade 'mycli[all]'
WSL サポートを完成させる PR を歓迎します!
謝辞
このプロジェクトは Kickstarter を通じて資金提供を受けました。プロジェクトを支援してくださった支援者の皆さまに感謝いたします。
このアプリを実現する基盤ライブラリである Python Prompt Toolkit を作成した Jonathan Slenders に、特別な感謝を申し上げます。Jonathan は、このアプリの開発中にも貴重なフィードバックとサポートを提供してくださいました。
コマンドラインオプションの解析とエラーメッセージの表示には、Click を使用しています。
MySQL データベース向けの純粋な Python アダプターを提供してくださった PyMysql に感謝します。
互換性
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 License の下で提供されるオープンソースソフトウェアです。
Mycli の Docker イメージおよび Git リポジトリには、Oracle が Creative Commons Attribution-Share Alike 3.0 Unported License の下で提供する 従業員サンプルデータベース のコピーが含まれています。