mysql的配置代码提示_mycli——MySQL自动补全工具

前言

不管是在Windows下还是在Linux,我需要看MySQL中的数据的时候我总是会情不自禁的在终端中连接MySQL,然后写SQL语句查看表,或者做在里面实验一些SQL语句。

我偶尔也会用一些MySQL的可视化工具,比如HeidiSQL

它会把所有的查询语句显示在下方,这样其实还是比较方便学习的,虽然Navicat也有回显SQL语句的功能,但是没有HeidiSQL方便一些,当然HeidiSQL甚至能从Windows应用商店中下载。

我看到网上有人说在mysql.cnf文件中添加auto-rehash参数,但是可能是我操作不当,没有成功,当然也无所谓,有更好的解决方案。

mycli

这是一个Python写的功能强大的MySQL命令行补全工具,并且是免费开源的。

补全体验和用vim写代码时很像,通过tab键就能补全

安装

因为是Python写的,所以在各个平台下都可以通过pip安装

pip3 install mycli

连接如果是当前系统用户名和MySQL用户名相同且只需要使用某个数据库那么可以直接连接

mycli database_name

提示输入密码就能进入使用参数连接,参数和MySQL连接的参数相同

mycli -u username -h 127.0.0.1 -P 3307 database_name

参数说明如下:

Options:

-h, --host TEXT Host address of the database.

-P, --port INTEGER Port number to use for connection. Honors

$MYSQL_TCP_PORT.

-u, --user TEXT User name to connect to the database.

-S, --socket TEXT The socket file to use for connection.

-p, --password TEXT Password to connect to the database.

--pass TEXT Password to connect to the database.

--ssh-user TEXT User name to connect to ssh server.

--ssh-host TEXT Host name to connect to ssh server.

--ssh-port INTEGER Port to connect to ssh server.

--ssh-password TEXT Password to connect to ssh server.

--ssh-key-filename TEXT Private key filename (identify file) for the

ssh connection.

--ssh-config-path TEXT Path to ssh configuration.

--ssh-config-host TEXT Host for ssh server in ssh configurations (requires paramiko).

--ssl-ca PATH CA file in PEM format.

--ssl-capath TEXT CA directory.

--ssl-cert PATH X509 cert in PEM format.

--ssl-key PATH X509 key in PEM format.

--ssl-cipher TEXT SSL cipher to use.

--ssl-verify-server-cert Verify server's "Common Name" in its cert

against hostname used when connecting. This

option is disabled by default.

-V, --version Output mycli's version.

-v, --verbose Verbose output.

-D, --database TEXT Database to use.

-d, --dsn TEXT Use DSN configured into the [alias_dsn]

section of myclirc file.

--list-dsn list of DSN configured into the [alias_dsn]

section of myclirc file.

--list-ssh-config list ssh configurations in the ssh config (requires paramiko).

-R, --prompt TEXT Prompt format (Default: "\t \u@\h:\d> ").

-l, --logfile FILENAME Log every query and its results to a file.

--defaults-group-suffix TEXT Read MySQL config groups with the specified

suffix.

--defaults-file PATH Only read MySQL options from the given file.

--myclirc PATH Location of myclirc file.

--auto-vertical-output Automatically switch to vertical output mode

if the result is wider than the terminal

width.

-t, --table Display batch output in table format.

--csv Display batch output in CSV format.

--warn / --no-warn Warn before running a destructive query.

--local-infile BOOLEAN Enable/disable LOAD DATA LOCAL INFILE.

--login-path TEXT Read this path from the login file.

-e, --execute TEXT Execute command and quit.

--init-command TEXT SQL statement to execute after connecting.

--charset TEXT Character set for MySQL session.

--help Show this message and exit.dsn连接mycli mysql://[username[:password]@][host][:port][/database_name]

mysql://username:password@host:3306/database_name

界面

界面还是很好看的,支持大小写的补全,如果是小写就补全小写,如果是大写就补全大写,并且还有一让人一用就上瘾的功能,在上面的语句中我只打了DA,但是后面的TABASES也显示出来了只是颜色比较浅,这时候就可以用方向键右键直接补全,因为这个语句我写过了,mycli有了历史记录,所以会有一个提示,这个和oh-my-zsh的插件很像。

配置

在mycli项目中有一个myclirc的文件,经常玩Linux的朋友肯定会有想法,这个文件就是mycli的配置文件的模板文件,那么我们可以通过修改mycli的配置文件来做一些定制化,那么配置文件在哪呢?配置文件在用户目录下,文件名为.myclirc,也就是~/.myclirc,Windows用户通常是在C:\Users\xxx下修改SQL语法高亮颜色,可以参照https://www.mycli.net/syntax进行修改,比如我要将颜色改为perldoc,需要修改配置文件中syntax_style的值

+syntax_style = defualt-syntax_style = perldoc

再次打开mycli颜色就改变了

注意:在Windows下一些颜色无法正常显示

修改提示符,mycli的默认提示符是>符号,感觉不是很好看,需要修改配置文件中prompt的值

+prompt = '\t \u@\h:\d>-prompt = '\t \u@\h:\d▶

下面一行的prompt_continuation是mycli换行提示符,默认是->因为我字体的原因会将这个符号结合为一个箭头,如果不喜欢可以自行修改,再次打开后提示符就变了修改登录提示信息,默认的登录提示信息会输出mysql version、mycli version、Chat、Mail、Home还有对贡献人员的感谢,我不想要这些提示,但是在配置文件中似乎没有找到可以修改的选项,那么就得从源码下手了,需要修改安装的这个包的源代码,如果需要修改需要找到Python安装位置,然后进入Lib\site-packages\mycli文件夹下,修改main.py

成功在561行找到需要修改的内容,我要更改Chat、Mail、Home以及对贡献人员的感谢,前面三个直接改就行,感谢的贡献人员名字获取调用了thanks_picker函数,传入的内容是文件地址,如果不要直接注释掉就行,当然也可以将这两个文件中的名字改为自己的名字,但是这样不太尊作者以及对这个项目有贡献的人员,因此我只是简单的注释掉了

保存退出!

再次进入mycli可以看到提示信息已经改变了!使用vi模式,作为程序员或多或少听说过vim,但是vim不是编辑器吗?和mycli有什么关系,mycli的命令行默认使用的是emacs模式,也就是键盘键位绑定了emacs的键位,可能没用过emacs的人感觉不到,但是这个键位绑定是可以修改的,可以改为vi。如果改为了vi模式,那么就可以使用vi的快捷键,当按下esc键的时候就进入了NORMAL模式,在这个模式下可以使用h、l左右移动光标,k、j上下移动,使用w让光标移向前动一个单词,使用b让光标向后移动一个单词,当然还有很多的快速移动的光标的方法,mycli中能实现的快捷键不多,但是能满足正常的移动修改,需要修改配置文件中的key_bindings的值

+key_bindings = emacs-key_bindings = vi

保存后退出就可以使用一些vi命令了

因为mycli是开源的自己可以clone下来玩玩,做一些有意思的修改!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值