• 数据库命令行工具USQL、mycli、litecli、pgcli


    USQL

    USQL 是一款使用 Go 语言开发的支持 SQL/NoSQL 数据库的通用命令行工具,它支持多种主流的数据库软件,目前最新版本是usql 0.7.0。比如 PostgreSQL、MySQL、Oracle Database、SQLite3、Microsoft SQL Server 以及许多其它的数据库(包括 NoSQL 和非关系型数据库)。

    USQL 的灵感来自 PostgreSQL 的 PSQL,USQL 支持大多数 PSQL 的核心特性,比如:设置变量、反引号参数。并具有 PSQL 不支持的其它功能,如语法高亮、基于上下文的自动补全和多数据库支持等。

    USQL项目地址

    安装 USQL

    由于 USQL 使用 Go 语言开发,具备了良好的Linux、Windows等跨平台特性。USQL 安装非常简单,官方也提供二进制、Homebrew、Scoop等多种安装方式。这里我们就使用最具通用性的二进制方式安装,以 Linux 平台为例:

    $ wget https://github.com/xo/usql/releases/download/v0.7.0/usql-0.7.0-linux-amd64.tar.bz2

    $ tar xjvf usql-0.7.0-linux-amd64.tar.bz2

    $ sudo mv usql /usr/local/bin

    如果你使用其它平台,可根据实际情况在官方下载页面下载对应版本。

    USQL 用法

    USQL:支持SQL/NoSQL数据库的通用命令行工具

    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: "	 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

    注:进入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

    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.
  • 相关阅读:
    IDEA maven 项目编译忽略xml文件问题
    Mybatis Generator 路径和实体类要放的路径不一致 导致Could not resolve type alias
    Mybatis 错误:Error parsing Mapper XML. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias
    Spring Security使用报错 No bean named 'springSecurityFilterChain' is defined
    连接mysql失败 Path does not chain with any of the trust anchors
    IPFS客户端导致IDEA SSH登录错误,显示Connection reset
    Electron-从windows向electron拖动文件失败
    【Electron】renderer.js中无法require('electron').remote
    getElementsByNames无法获得对应的svg标签
    [React] setState更新成功不触发渲染,不常见的解决方法
  • 原文地址:https://www.cnblogs.com/-wenli/p/11239042.html
Copyright © 2020-2023  润新知