如果你平常在命令行操作数据库,强烈推荐你使用下面的几个命令行工具了。
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
公众号:苏生不惑