ITPub博客

首页 > 数据库 > MySQL > 分享一个MySQL命令行自动完成和补全的小工具

分享一个MySQL命令行自动完成和补全的小工具

原创 MySQL 作者:chenfeng 时间:2019-06-26 15:12:26 0 删除 编辑

MySQL的命令行客户端工具mycli,可以实现命令行自动完成补全和语法突出显示。


主页: http://mycli.net

文档: http://mycli.net/docs


安装方法:

# pip install -U mycli

Collecting mycli

  Downloading https://files.pythonhosted.org/packages/f9/8a/9f96f12b482ff2e1bbb1d4252e14b4a24ed37daa5b1dcd14c3d990eca9dd/mycli-1.19.0-py2.py3-none-any.whl (56kB)

    100% |████████████████████████████████| 61kB 27kB/s 

Collecting PyMySQL>=0.9.2 (from mycli)

  Downloading https://files.pythonhosted.org/packages/ed/39/15045ae46f2a123019aa968dfcba0396c161c20f855f11dea6796bcaae95/PyMySQL-0.9.3-py2.py3-none-any.whl (47kB)

    100% |████████████████████████████████| 51kB 11kB/s 

Collecting sqlparse<0.3.0,>=0.2.2 (from mycli)

  Downloading https://files.pythonhosted.org/packages/65/85/20bdd72f4537cf2c4d5d005368d502b2f464ede22982e724a82c86268eda/sqlparse-0.2.4-py2.py3-none-any.whl

Collecting configobj>=5.0.5 (from mycli)

  Downloading https://files.pythonhosted.org/packages/64/61/079eb60459c44929e684fa7d9e2fdca403f67d64dd9dbac27296be2e0fab/configobj-5.0.6.tar.gz

Collecting cryptography>=1.0.0 (from mycli)

  Downloading https://files.pythonhosted.org/packages/97/18/c6557f63a6abde34707196fb2cad1c6dc0dbff25a200d5044922496668a4/cryptography-2.7-cp34-abi3-manylinux1_x86_64.whl (2.3MB)

    100% |████████████████████████████████| 2.3MB 1.3MB/s 

Collecting cli-helpers[styles]>=1.0.1 (from mycli)

  Downloading https://files.pythonhosted.org/packages/51/53/d94bb9cd98cd996da6eeea82a077293cd62b825d89a36d3c27714cae5e5b/cli_helpers-1.2.1-py3-none-any.whl

Collecting Pygments>=1.6 (from mycli)

  Downloading https://files.pythonhosted.org/packages/5c/73/1dfa428150e3ccb0fa3e68db406e5be48698f2a979ccbcec795f28f44048/Pygments-2.4.2-py2.py3-none-any.whl (883kB)

    100% |████████████████████████████████| 890kB 1.5MB/s 

Collecting prompt-toolkit>=2.0.6 (from mycli)

  Downloading https://files.pythonhosted.org/packages/f7/a7/9b1dd14ef45345f186ef69d175bdd2491c40ab1dfa4b2b3e4352df719ed7/prompt_toolkit-2.0.9-py3-none-any.whl (337kB)

    100% |████████████████████████████████| 337kB 1.5MB/s 

Collecting click>=4.1 (from mycli)

  Using cached https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl

Collecting six (from configobj>=5.0.5->mycli)

  Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl

Collecting cffi!=1.11.3,>=1.8 (from cryptography>=1.0.0->mycli)

  Downloading https://files.pythonhosted.org/packages/5f/bf/6aa1925384c23ffeb579e97a5569eb9abce41b6310b329352b8252cee1c3/cffi-1.12.3-cp36-cp36m-manylinux1_x86_64.whl (430kB)

    100% |████████████████████████████████| 440kB 1.5MB/s 

Collecting asn1crypto>=0.21.0 (from cryptography>=1.0.0->mycli)

  Using cached https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl

Collecting tabulate[widechars]>=0.8.2 (from cli-helpers[styles]>=1.0.1->mycli)

  Downloading https://files.pythonhosted.org/packages/c2/fd/202954b3f0eb896c53b7b6f07390851b1fd2ca84aa95880d7ae4f434c4ac/tabulate-0.8.3.tar.gz (46kB)

    100% |████████████████████████████████| 51kB 5.7MB/s 

Collecting terminaltables>=3.0.0 (from cli-helpers[styles]>=1.0.1->mycli)

  Downloading https://files.pythonhosted.org/packages/9b/c4/4a21174f32f8a7e1104798c445dacdc1d4df86f2f26722767034e4de4bff/terminaltables-3.1.0.tar.gz

Collecting wcwidth (from prompt-toolkit>=2.0.6->mycli)

  Downloading https://files.pythonhosted.org/packages/7e/9f/526a6947247599b084ee5232e4f9190a38f398d7300d866af3ab571a5bfe/wcwidth-0.1.7-py2.py3-none-any.whl

Collecting pycparser (from cffi!=1.11.3,>=1.8->cryptography>=1.0.0->mycli)

  Using cached https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz

Installing collected packages: PyMySQL, sqlparse, six, configobj, pycparser, cffi, asn1crypto, cryptography, wcwidth, tabulate, terminaltables, Pygments, cli-helpers, prompt-toolkit, click, mycli

  Running setup.py install for configobj ... done

  Running setup.py install for pycparser ... done

  Running setup.py install for tabulate ... done

  Running setup.py install for terminaltables ... done

Successfully installed PyMySQL-0.9.3 Pygments-2.4.2 asn1crypto-0.24.0 cffi-1.12.3 cli-helpers-1.2.1 click-7.0 configobj-5.0.6 cryptography-2.7 mycli-1.19.0 prompt-toolkit-2.0.9 pycparser-2.19 six-1.12.0 sqlparse-0.2.4 tabulate-0.8.3 terminaltables-3.1.0 wcwidth-0.1.7

You are using pip version 18.1, however version 19.1.1 is available.

You should consider upgrading via the 'pip install --upgrade pip' command.

[root@test1 20190626]# 


使用举例:

Examples:

    - mycli my_database

    - mycli -u my_user -h my_host.com my_database

    - mycli mysql://my_user@my_host.com:3306/my_database



# mycli -uroot -p -D test  -h 192.168.16.150

Password: 

mysql 5.7.24-log

mycli 1.19.0

Chat: https://gitter.im/dbcli/mycli

Mail: https://groups.google.com/forum/#!forum/mycli-users

Home: http://mycli.net

Thanks to the contributor - Dick Marinus

mysql root@192.168.16.150:test> select * from  

                                               aaa                  

                                               dsf                  

                                               dsf_old              

                                               peihy                

                                               sq_prebycollecttime  

                                               t                    

                                               t1          


mysql> select * from dsf order by rand() limit 5 \G                                                                      

***************************[ 1. row ]***************************

id   | 281730

name | <null>

***************************[ 2. row ]***************************

id   | 448833

name | <null>

***************************[ 3. row ]***************************

id   | 441833

name | <null>

***************************[ 4. row ]***************************

id   | 686905

name | <null>

***************************[ 5. row ]***************************

id   | 392884

name | <null>

5 rows in set

Time: 1.311s

mysql>  



说明:

mycli命令后面必须用-D跟数据库名,否则会报错:

(1049, "Unknown database


  

命令帮助信息:

# mycli --help

Usage: mycli [OPTIONS] [DATABASE]


  A MySQL terminal client with auto-completion and syntax highlighting.


  Examples:

    - mycli my_database

    - mycli -u my_user -h my_host.com my_database

    - mycli mysql://my_user@my_host.com:3306/my_database


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.

  --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.

  -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.

  --help                        Show this message and exit.


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-2648798/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
交流MySQL,MongoDB和Redis技术。 微信或QQ:410294

注册时间:2015-12-07

  • 博文量
    744
  • 访问量
    1718118