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

来源:这里教程网 时间:2026-03-01 12:12:51 作者:

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.

相关推荐