MyCLI 是 MySQL、MariaDB 和 Percona 的命令行界面,具有自動完成和語法突出顯示功能。 自動完成將幫助您更快、更輕鬆地編寫查詢。 REPL(讀取、評估、打印、循環)將在您開始輸入後立即彈出一個建議菜單。 這些建議是基於光標位置的上下文相關的。 例如:FROM 關鍵字後只建議表,WHERE 子句後只建議列名。
命令行界面 使用 BPython,它是一種 Python REPL,具有自動完成、語法高亮顯示功能,並在您鍵入時顯示函數的文檔字符串。 本文介紹了 MyCLI 在任何 Linux 版本中的安裝和使用。
安裝 MyCLI
使用 python 包安裝程序 (PIP) 安裝 My-CLI。 你需要已經在你的系統中安裝了 Python PIP。 在終端中使用以下命令安裝 PIP。
# apt-get install python-pip (Ubuntu)
# yum -y install python-pip (CentOS)
檢查 pip 的版本,然後安裝 MyCLI。
# pip -V
# pip install -U mycli
你也可以在 Ubuntu/Debian 中使用 apt-get 來安裝它。
# sudo apt-get install mycli
使用以下兩個命令查找 MyCLI 的版本和用法。
# mycli --version
Version: 1.10.
# mycli --help
MyCLI 功能
除了使用 Pygments 的語法高亮顯示之外,主要功能是在您鍵入 SQL 關鍵字以及數據庫中的表、視圖和列時自動完成。 智能完成(默認啟用)將建議上下文相關的完成。 它支持多行查詢和 SSL 連接。 您可以使用 fs alias 查詢保存常用查詢,並在需要時使用 f alias 執行它,並為 sql 語句計時並呈現表。
主目錄下生成三個配置文件。 他們是 ~/.mycli-history
, ~/.mycli.log
和 ~/.myclirc
. 歷史文件包含您執行的所有 sql 語句和時間戳。 日誌文件包含 My-CLI 的日誌。 默認日誌級別為 INFO。 其他可能的值:“CRITICAL”、“ERROR”、“WARNING”和“DEBUG”。 “NONE”禁用日誌記錄。 配置文件是 ~/.myclirc。 這些文件是在您第一次啟動 mycli 時創建的。 另一個很酷的功能是它能夠將每個查詢及其結果記錄到一個文件中。 默認情況下禁用此功能。 通過取消註釋以下行來啟用此功能 ~/.myclirc
.
# vi ~/.myclirc
audit_log = ~/.mycli-audit.log
表輸出的默認格式是“psql”。 更改適合您的格式。 其他選項是 psql、plain、simple、grid、fancy_grid、pipe、orgtbl、rst、mediawiki、html、latex、latex_booktabs、tsv。
table_format = fancy_grid
如何使用 MyCLI
在使用 MyCli 之前,創建一個測試數據庫。 儘管這是可選的並且在本文中僅用於演示 mycli 的功能。 你可以跳過這一步,因為你的系統中已經有 MySQL 數據庫了。 下載 員工的數據庫架構,解壓並導入。
# wget https://github.com/datacharmer/test_db/archive/master.zip
# unzip master.zip
# cd test_db-master
# mysql -u root -p < employees.sql
現在從終端使用以下命令調用 mycli。 如果身份驗證成功,您將收到 my-cli 提示。 您可以在 ~/.myclirc 中自定義提示
# mycli -h localhost -u root employees
mysql root@localhost:employees> select * from
一旦您鍵入“select * from”,則在 FROM 關鍵字之後只建議來自當前數據庫的表名。 在 WHERE 子句之後建議使用當前表中的列名。 此外,Insert 語句將建議列名。 解析查詢中的別名並建議表別名中的列。
您可以使用 my-cli 使用以下命令連接到遠程服務器。
# mycli mysql://root@MySQL-Server-IP:3306/employees
結論
My-Cli 是一個不錯的客戶端工具,它通過在編寫查詢時建議表和列名稱來縮短在終端中編寫查詢的時間。 名稱中還有與此工具等效的 postgres 命令行 由 Amjith 開發。 如果你想給 mycli 添加一個新功能,你會得到他的指導。 據他介紹,my-cli 也與 Windows 兼容,但尚未經過測試。