smycli

Base on the MYCLI CLI for MySQL Database,add additional secure manner via ssh tunnel


Keywords
cli, mysql, mycli
License
MIT
Install
pip install smycli==0.1.6

Documentation

smycli

Base on the cli tool mycli (HomePage: http://mycli.net ), add additional secure manner via proxy

Quick Start

If you already know how to install python packages, then you can install it via pip:

You might need sudo on linux.

$ sudo pip install smycli

Usage

$ smycli --help
Usage: smycli [OPTIONS] [DATABASE]

Options:
  --ssh-host TEXT               Ssh host of the proxy,spicify this option to
                                indcate use ssh tunnel;if not spicified,use
                                mycli directly
  --ssh-port INTEGER            Ssh port of the proxy.
  --ssh-user TEXT               Ssh user of the proxy.
  --ssh-pkey TEXT               Ssh pravite key
  --ssh-password TEXT           the password for pravite key or password auth
  -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
  --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                 Version of mycli.
  -D, --database TEXT           Database to use.
  -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 config group with the specified suffix.
  --defaults-file PATH          Only read default options from the given 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.
  --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 query to the database.
  --help                        Show this message and exit.

Examples

#connect mydb on localhost user mycli directly
$ smycli -h localhost -u root mydb 

#connect mydb on dbhost but via the tunnel "localhost->sshhost" which is encrypted,then "sshhost->dbhost" is not encrypted.
$ smycli -u admin -h dbhost -P 3306 --ssh-user=root --ssh-host sshhost  mydb 

#connect mydb on dbhost but via the tunnel "localhost->dbhost" which is encrypted on the whole traffic.
$ smycli -u admin -h dbhost -P 3306 --ssh-user=root --ssh-host dbhost   mydb 

Features

except the excillent features of cli tool mycli,smycli has additional ones:

  • encrypt the traffic data via ssh
  • via the "proxy node" ,connect to DB hosts from anywhere, safely

Copyright:

All rights of mycli is reserved BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS,the license is here,and other rights is reserved by the BY THE COPYRIGHT HOLDERS . All rights of smycli is reserved .

Detailed Install Instructions:

you can install mycli as follows:

$ sudo pip install mycli

Thanks:

Thanks to all the ones who made this excellent tool mycli.

Compatibility

Tests have been run on OS X and Linux.

THIS HAS NOT BEEN TESTED IN WINDOWS, but the libraries used in this app are Windows compatible. This means it should work without any modifications.