MySQL第三方利器mycli

我常用的MySQL客户端有三:官方的命令行工具mysql和图形界面软件MySQL Workbench,以及第三方命令行工具mycli。此三者都是经过无数实践检验过的,并且免费、跨平台。

我的笔记本上的MySQL主要是作练习和测试之用,因此命令行的mysql已经绰绰有余了。我偶尔也用图形界面的MySQL Workbench。注意,mysql的自动补全功能依赖于readline,后者在Windows上默认是没有的。

mycli提供了无可匹敌的便捷。我特别喜欢它的语法高亮和自动补全功能。

安装

mycli基于Python,通过包管理器pip安装。

在Windows下,需要确保已安装了Pythonh和pip。以管理员身份打开命令行,输入pip的安装命令:python -m pip install mycli

在Ubuntu下,输入:pip install mycli

快速上手

mycli的使用非常方便,容易上手。

如下图,mycli会根据上下文,自动补全语法关键字和名称。

此外,mycli会记住最常用的查询,在后续的使用中给出非常贴心的查询建议。

常用快捷键

mycli提供行内编辑功能,其快捷键与bash一致,非常容易掌握。

我常用的是这几个:

  • Ctrl + A将光标移行首,Ctrl + A将光标移行首尾。
  • Ctrl + U删除至行首,Ctrl + K删除至行尾。
  • Alt + B向前移动一个单词,Alt + F向后移动一个单词。
  • Ctrl + W删除当前单词。
  • Tab补全关键词/名称。
  • 右箭头选用整行的自动补全建议。
  • Ctrl + L清除屏幕内容。

登录凭证

mycli支持三种保存和使用凭证的方式:.my.cnflogin path, DSN别名

.my.cnf

mycli能识别用户目录下的选项文件.my.cnf,可以在其中指定默认登录凭证,并放到[client]选项组。

Login Path

MySQL 5.6.6及更新版本支持login paht(登录路径)。与mysql等MySQL自带的客户端一样,mycliy也支持在启动时指定login path:mycli –login-path mypath。其中mypath是login path的名称。

Login path对应的选项文件是.mylogin.cnf。在Windows下,该文件为C:\User\[username]\.mylogin.cnf。在Linux下,该文件为/home/[username]/.mylogin.cnf。该文件与其他MySQL选项文件有相似的格式。

Login path可以手动编辑,也可用mysql_config_editor进行配置。手动编辑的login path中的密码是明文的,不安全。mysql_config_editor支持创建、移除和显示多个login path,其中的密码以密文保存。

DSN别名

mycli独有的一种登录凭证是DSN别名。可以在myclirc选项文件的[alias_dns]选项组下设置多个别名,如:

example_dsn = mysql://[user[:password]@][netloc][:port][/dbname]

并用mycli -d example_dsn连接到对应的数据库。

在Windows下,.myclirc位于用户目录,通常是C:\User\[username]\.myclirc。在Linux下,该文件的路径为/home/[username]/.myclirc