在MySQL中启用自动补全

2018年6月18日更新:

前一段时间,将MySQL升级到8.0后,MyCLI这个插件无法使用了,于是在它的GitHub上提出了一个Issue,最近得到了回复。

在MySQL中启用自动补全_第1张图片

在MySQL 8.0使用mycli要先确保PyMySQL>=0.6.7 ,亲测有效。

pip3 install pymysql

2018年5月1日更新:

多谢楼下小伙伴的提醒,MyCLI确实更强大。

MyCLI 简介

MyCLI 是一个易于使用的命令行客户端,可用于受欢迎的数据库管理系统 MySQL、MariaDB 和 Percona,支持自动补全和语法高亮。它是使用 prompt_toolkit 库写的,需要 Python 2.7、3.3、3.4、3.5 和 3.6 的支持。MyCLI 还支持通过 SSL 安全连接到 MySQL 服务器。

如何在 Linux 上为 MySQL 和 MariaDB 安装 MyCLI

在 Debian/Ubuntu 发行版上,你可以很容易的像下面这样使用 apt 命令 来安装 MyCLI 包:

$ sudo apt-get update
$ sudo apt-get install mycli

同样,在 Fedora 22+ 上也有 MyCLI 的可用包,你可以像下面这样使用 dnf 命令 来安装它:

$ sudo dnf install mycli

对于其他 Linux 发行版,比如 RHEL/CentOS,你需要使用 Python 的 pip 工具来安装 MyCLI。首先,使用下面的命令来安装 pip:

$ sudo yum install pip  

安装好 pip 以后,你可以像下面这样安装 MyCLI:

$ sudo pip install mycli

在 Linux 中如何使用 MyCLI 连接 MySQL 和 MariaDB

安装好 MyCLI 以后,你可以像下面这样使用它:

$ mycli -u root -h localhost 

在MySQL中启用自动补全_第2张图片

参考链接:MyCLI :一个支持自动补全和语法高亮的 MySQL/MariaDB 客户端

原来文章


在MySQL官方文档中,有对–auto-rehash的解释
在MySQL中启用自动补全_第3张图片
意思为:

自动补全可用。默认情况下是打开自动补全,可以补全数据库、表和字段的名称。用–disable-auto-rehash关闭自动补全,这样会使MySQL启动更快,但是必须用rehash或者自己的\#来实现自动补全。

为了完成补全,输入一部分并按Tab来补全,但如果匹配的不止一个可以再按Tab来展开所有的可能,但如果没有匹配的就不会补全。

一、客户端连接mysql时加相关参数

在mysql启动时加参数auto-rehash

mysql -u root -p -A --auto-rehash

二、修改my.cnf配置文件

vim /etc/mysql/my.cnf

添加下列代码

[mysql] 
auto-rehash         

在MySQL中启用自动补全_第4张图片
重启mysql服务

如果没有生效,重启电脑即可。

测试:

mysql> s 按Tab
set option       show fields from show tables      status           system          
show databases   show keys from   source           sys             

mysql> selset * from S 按Tab
SAVEPOINT           Sex                 SPACE               SQLEXCEPTION        STRIPED            
SC                  SHA                 SPATIAL             SQLSTATE            Student            
SC.Cno              SHA1                SPECIFIC            SQLWARNING          Student.Age        
SC.Grade            SHARE               SPJ                 SQRT                Student.Phonenumber
SC.Sno              SHOW                SQL                 SRID                Student.Sdept      
SCHEMA              SHUTDOWN            SQL_BIG_RESULT      SSL                 Student.Sex        
SCHEMAS             SIGN                SQL_BUFFER_RESULT   START               Student.Sname      
Sdept               SIGNED              SQL_CACHE           STARTING            Student.Sno        
SEC_TO_TIME         SIMPLE              SQL_CALC_FOUND_ROWS STARTPOINT          SUBDATE            
SECOND              SIN                 SQL_NO_CACHE        STATUS              SUBJECT            
SECOND_MICROSECOND  SLAVE               SQL_SMALL_RESULT    STD                 SUBSTR             
SECURITY            SLEEP               SQL_THREAD          STDDEV              SUBSTRING          
SELECT              SMALLINT            SQL_TSI_DAY         STDDEV_POP          SUBSTRING_INDEX    
SENSITIVE           Sname               SQL_TSI_HOUR        STDDEV_SAMP         SUBTIME            
SEPARATOR           SNAPSHOT            SQL_TSI_MINUTE      STOP                SUM                
SERIAL              Sno                 SQL_TSI_MONTH       STORAGE             SUPER              
SERIALIZABLE        SOME                SQL_TSI_QUARTER     STR_TO_DATE         SUSPEND            
SESSION             SONAME              SQL_TSI_SECOND      STRAIGHT_JOIN       SYSDATE            
SESSION_USER        SOUNDEX             SQL_TSI_WEEK        STRCMP              SYSTEM_USER        
SET                 SOUNDS              SQL_TSI_YEAR        STRING             

mysql> select * from Student;
+-----+----------+-----+-----+-------------+-------+
| Sno | Sname    | Sex | Age | Phonenumber | Sdept |
+-----+----------+-----+-----+-------------+-------+
| 1   | SDDSA    | 男  |  16 | 15934821034 | SE    |
| 2   | huxudong | 男  |  20 | 18945678954 | SE    |
| 3   | datou    | 男  |  19 | 18852978102 | NE    |
+-----+----------+-----+-----+-------------+-------+
3 rows in set (0.00 sec)

你可能感兴趣的:(MySQL)