共计 6966 个字符,预计需要花费 18 分钟才能阅读完成。
如果你平常在命令行操作数据库,强烈推荐你使用下面的几个命令行工具了。
mycli
mycli 是基于 MySQL 的命令行工具,直接使用 pip install mycli
安装,
具体介绍见 https://github.com/dbcli/mycli
$ 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. | |
λ mycli -u root | |
Password: | |
mysql 5.5.53 | |
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 - Jialong Liu | |
mysql root@localhost:(none)> show data | |
databases | |
create database |
语法高亮 和 自动补全
ps: 进入 MySQL 命令行后如果想执行 Linux 命令怎么办,先退出执行然后再登录 MySQL?麻烦,其实可以直接用 system。
mysql> system pwd | |
/root | |
mysql> system ll | |
sh: ll: command not found | |
mysql> system ls -al | |
total 40160 | |
dr-xr-x---. 39 root root 4096 Jul 10 14:47 . | |
dr-xr-xr-x. 29 root root 4096 May 5 18:55 .. |
litecli
litecli 是基于 sqlite 的命令行工具,直接用 pip install -U litecli
安装,具体介绍见
https://github.com/dbcli/litecli
$ litecli --help | |
Usage: litecli [OPTIONS] [DATABASE] | |
A SQLite terminal client with auto-completion and syntax highlighting. | |
Examples: | |
- litecli lite_database | |
Options: | |
-V, --version Output litecli's version. | |
-D, --database TEXT Database to use. | |
-R, --prompt TEXT Prompt format (Default: "\d>"). | |
-l, --logfile FILENAME Log every query and its results to a file. | |
--liteclirc PATH Location of liteclirc 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. | |
-e, --execute TEXT Execute command and quit. | |
--help Show this message and exit. | |
λ litecli | |
Version: 1.0.0 | |
Mail: https://groups.google.com/forum/#!forum/litecli-users | |
Github: https://github.com/dbcli/litecli | |
(none)> .tables | |
Not connected to database. | |
(none)> .databases | |
Not connected to database. | |
(none)> use test | |
You are now connected to database "test" | |
Time: 0.001s | |
test> .tables | |
Time: 0.000s | |
test> CREATE TABLE COMPANY( | |
ID INT PRIMARY KEY NOT NULL, | |
NAME TEXT NOT NULL, | |
AGE INT NOT NULL, | |
ADDRESS CHAR(50), | |
SALARY REAL | |
); | |
Query OK, 0 rows affected | |
Time: 0.077s | |
test> .tables | |
+---------+ | |
| name | | |
+---------+ | |
| COMPANY | | |
+---------+ | |
Time: 0.040s |
使用语法见 https://www.runoob.com/sqlite/sqlite-insert.html
test> INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) | |
VALUES (1, 'Paul', 32, 'California', 20000.00); | |
Query OK, 1 row affected | |
Time: 0.083s | |
test> select *from `COMPANY` | |
+----+------+-----+------------+---------+ | |
| ID | NAME | AGE | ADDRESS | SALARY | | |
+----+------+-----+------------+---------+ | |
| 1 | Paul | 32 | California | 20000.0 | | |
+----+------+-----+------------+---------+ | |
1 row in set | |
Time: 0.023s | |
test> SELECT CURRENT_TIMESTAMP; | |
+---------------------+ | |
| CURRENT_TIMESTAMP | | |
+---------------------+ | |
| 2019-07-10 06:49:09 | | |
+---------------------+ | |
1 row in set | |
Time: 0.017s | |
test> UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 1; | |
Query OK, 1 row affected | |
Time: 0.097s | |
test> select *from `COMPANY` | |
+----+------+-----+---------+---------+ | |
| ID | NAME | AGE | ADDRESS | SALARY | | |
+----+------+-----+---------+---------+ | |
| 1 | Paul | 32 | Texas | 20000.0 | | |
+----+------+-----+---------+---------+ | |
1 row in set | |
Time: 0.019s |
mssql-cli
mssql-cli 是基于 mssql 的命令行工具,直接用 pip install mssql-cli
安装,具体介绍见 https://github.com/dbcli/mssq… https://www.ctolib.com/dbcli-…
$ mssql-cli --help | |
usage: mssql-cli [-h] [-U] [-P] [-d] [-S] [-E] [-v] [--mssqlclirc] | |
[--row-limit] [--less-chatty] [--auto-vertical-output] [-N] | |
[-C] [-l] [-K] [-M] [-a] [-A] | |
[--enable-sqltoolsservice-logging] [--prompt] | |
Microsoft SQL Server CLI. Version 0.15.0 | |
optional arguments: | |
-h, --help show this help message and exit | |
-U , --username Username to connect to the database | |
-P , --password If not supplied, defaults to value in environment | |
variable MSSQL_CLI_PASSWORD. | |
-d , --database database name to connect to. | |
-S , --server SQL Server instance name or address. | |
-E, --integrated Use integrated authentication on windows. | |
-v, --version Version of mssql-cli. | |
--mssqlclirc Location of mssqlclirc config file. | |
--row-limit Set threshold for row limit prompt. Use 0 to disable | |
prompt. | |
--less-chatty Skip intro on startup and goodbye on exit. | |
--auto-vertical-output | |
Automatically switch to vertical output mode if the | |
result is wider than the terminal width. | |
-N, --encrypt SQL Server uses SSL encryption for all data if the | |
server has a certificate installed. | |
-C, --trust-server-certificate | |
The channel will be encrypted while bypassing walking | |
the certificate chain to validate trust. | |
-l , --connect-timeout | |
Time in seconds to wait for a connection to the server | |
before terminating request. | |
-K , --application-intent | |
Declares the application workload type when connecting | |
to a database in a SQL Server Availability Group. | |
-M, --multi-subnet-failover | |
If application is connecting to AlwaysOn AG on | |
different subnets, setting this provides faster | |
detection and connection to currently active server. | |
-a , --packet-size Size in bytes of the network packets used to | |
communicate with SQL Server. | |
-A, --dac-connection Connect to SQL Server using the dedicated | |
administrator connection. | |
--enable-sqltoolsservice-logging | |
Enables diagnostic logging for the SqlToolsService. | |
--prompt Prompt format (Default: \d> |
pgcli
pgcli 是一个基于 PostgreSQL 的命令行工具,支持自动补全和语法高亮, 直接使用pip install -U pgcli
安装,具体介绍见 https://github.com/dbcli/pgcli
$ pgcli --help | |
Usage: pgcli [OPTIONS] [DATABASE] [USERNAME]Options: | |
-h, --host TEXT Host address of the postgres database. | |
-p, --port INTEGER Port number at which the postgres instance is listening. | |
-U, --user TEXT User name to connect to the postgres database. | |
-W, --password Force password prompt. | |
-w, --no-password Never prompt for password. | |
-v, --version Version of pgcli. | |
-d, --dbname TEXT database name to connect to. | |
--pgclirc TEXT Location of pgclirc file. | |
--help Show this message and exit. |
推荐阅读:
5 分钟使用 hugo 搭建一个自己的博客
Python 文档生成器 mkdocs
比 man 更强悍的命令行工具 cheat
上班摸鱼好去处
命令行录制工具 asciinema
公众号:苏生不惑
正文完