2018年6月18日更新:
前一段时间,将MySQL升级到8.0后,MyCLI这个插件无法使用了,于是在它的GitHub上提出了一个Issue,最近得到了回复。
在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
参考链接:MyCLI :一个支持自动补全和语法高亮的 MySQL/MariaDB 客户端
原来文章
在MySQL官方文档中,有对–auto-rehash的解释
意思为:
自动补全可用。默认情况下是打开自动补全,可以补全数据库、表和字段的名称。用–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服务
如果没有生效,重启电脑即可。
测试:
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)