- Detect TiDB instance, show in the prompt, and use additional keywords.
- Fix the completion order to show more commonly-used keywords at the top.
- Better handle empty statements in un/prettify
- Remove vi-mode bindings for prettify/unprettify.
- Honor
\G
when executing from commandline with-e
. - Correctly report the version of TiDB.
- Require Python 3.7 in
setup.py
- Add
--ssl
flag to enable ssl/tls. - Add
pager
option to~/.myclirc
, for instancepager = 'pspg --csv'
(Thanks: BuonOmo) - Add prettify/unprettify keybindings to format the current statement using
sqlglot
.
- Pin
cryptography
to suppressparamiko
warning, helping CI complete and presumably affecting some users. - Upgrade some dev requirements
- Change tests to always use databases prefixed with 'mycli_' for better security
- Support for some MySQL compatible databases, which may not implement connection_id().
- Fix the status command to work with missing 'Flush_commands' (mariadb)
- Ignore the user of the system [myslqd] config.
- Add
beep_after_seconds
option to~/.myclirc
, to ring the terminal bell after long queries.
- Upgrade Ubuntu VM for runners as Github has deprecated it
- Change in main.py - Replace the
click.get_terminal_size()
withshutil.get_terminal_size()
- Upgrade cli_helpers to workaround Pygments regression.
- Fix autocompletion for more than one JOIN
- Fix the status command when connected to TiDB or other servers that don't implement 'Threads_connected'
- Pin pygments version to avoid a breaking change
- Restore dependency on cryptography for the interactive password prompt
- Deprecate Python mock
- Allow
FileNotFound
exception for SSH config files. - Fix startup error on MySQL < 5.0.22
- Check error code rather than message for Access Denied error
- Fix login with ~/.my.cnf files
- Add
-g
shortcut to option--login-path
. - Alt-Enter dispatches the command in multi-line mode.
- Allow to pass a file or FIFO path with --password-file when password is not specified or is failing (as suggested in this best-practice https://www.netmeister.org/blog/passing-passwords.html)
- Remove unused function is_open_quote()
- Use importlib, instead of file links, to locate resources
- Test various host-port combinations in command line arguments
- Switched from Cryptography to pyaes for decrypting mylogin.cnf
- Ensure
--port
is always an int.
- Allow
--host
without--port
to make a TCP connection.
- Fix config file include logic
- Add an option
--init-command
to execute SQL after connecting (Thanks: [KITAGAWA Yasutaka]). - Use InputMode.REPLACE_SINGLE
- Add support for ANSI escape sequences for coloring the prompt.
- Allow customization of Pygments SQL syntax-highlighting styles.
- Add a
\clip
special command to copy queries to the system clipboard. - Add a special command
\pipe_once
to pipe output to a subprocess. - Add an option
--charset
to set the default charset when connect database.
- Fixed compatibility with sqlparse 0.4 (Thanks: mtorromeo).
- Fixed iPython magic (Thanks: mwcm).
- Send "Connecting to socket" message to the standard error.
- Respect empty string for prompt_continuation via
prompt_continuation = ''
in.myclirc
- Fix \once -o to overwrite output whole, instead of line-by-line.
- Dispatch lines ending with
\e
or\clip
on return, even in multiline mode. - Restore working local
--socket=<UDS>
(Thanks: xeron). - Allow backtick quoting around the database argument to the
use
command. - Avoid opening
/dev/tty
when--no-warn
is given. - Fixed some typo errors in
README.md
.
- Make the
pwd
module optional.
- Fix the breaking change introduced in PyMySQL 0.10.0. (Thanks: [Amjith]).
- Add an option
--ssh-config-host
to read ssh configuration from OpenSSH configuration file. - Add an option
--list-ssh-config
to list ssh configurations. - Add an option
--ssh-config-path
to choose ssh configuration path.
- Fix specifying empty password with
--password=''
when config file has a password set (Thanks: Zach DeCook).
- Fix broken auto-completion for favorite queries (Thanks: [Amjith]).
- Fix undefined variable exception when running with --no-warn (Thanks: Georgy Frolov)
- Support setting color for null value (Thanks: laixintao)
- Added DSN alias name as a format specifier to the prompt (Thanks: Georgy Frolov).
- Mark
update
withoutwhere
-clause as destructive query (Thanks: [Klaus Wünschel]). - Added DELIMITER command (Thanks: Georgy Frolov)
- Added clearer error message when failing to connect to the default socket.
- Extend main.is_dropping_database check with create after delete statement.
- Search
${XDG_CONFIG_HOME}/mycli/myclirc
after${HOME}/.myclirc
and before/etc/myclirc
(Thanks: [Takeshi D. Itoh])
- Allow \o command more than once per session (Thanks: Georgy Frolov)
- Fixed crash when the query dropping the current database starts with a comment (Thanks: Georgy Frolov)
- deprecate python versions 2.7, 3.4, 3.5; support python 3.8
- Fix an error when using login paths with an explicit database name (Thanks: Thomas Roten).
- Auto find alias dsn when
://
not indatabase
(Thanks: [QiaoHou Peng]). - Mention URL encoding as escaping technique for special characters in connection DSN (Thanks: [Aljosha Papsch]).
- Pressing Alt-Enter will introduce a line break. This is a way to break up the query into multiple lines without switching to multi-line mode. (Thanks: Amjith Ramanujam).
- Use a generator to stream the output to the pager (Thanks: Dick Marinus).
- Fix the missing completion for special commands (Thanks: Amjith Ramanujam).
- Fix favorites queries being loaded/stored only from/in default config file and not --myclirc (Thanks: Matheus Rosa)
- Fix automatic vertical output with native syntax style (Thanks: Thomas Roten).
- Update
cli_helpers
version, this will remove quotes from batch output like the official client (Thanks: Dick Marinus) - Update
setup.py
to no longer requiresqlparse
to be less than 0.3.0 as that just came out and there are no notable changes. ([VVelox]) - workaround for ConfigObj parsing strings containing "," as lists (Thanks: [Mike Palandra])
- fix unhashable FormattedText from prompt toolkit in unit tests (Thanks: Dick Marinus).
- Add Python 3.7 trove classifier (Thanks: Thomas Roten).
- Fix pytest in Fedora mock (Thanks: Dick Marinus).
- Require
prompt_toolkit>=2.0.6
(Thanks: Dick Marinus).
- Add Token.Prompt/Continuation (Thanks: Dick Marinus).
- Don't reconnect when switching databases using use (Thanks: [Angelo Lupo]).
- Handle MemoryErrors while trying to pipe in large files and exit gracefully with an error (Thanks: Amjith Ramanujam)
- Enable Ctrl-Z to suspend the app (Thanks: Amjith Ramanujam).
- Fixes database reconnecting feature (Thanks: [Yang Zou]).
- Update Twine version to 1.12.1 (Thanks: Thomas Roten).
- Fix warnings for running tests on Python 3.7 (Thanks: Dick Marinus).
- Clean up and add behave logging (Thanks: Dick Marinus).
- Add Keywords: TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT (Thanks: [QiaoHou Peng]).
- Update prompt toolkit (Thanks: Jonathan Slenders, Irina Truong, Dick Marinus).
- Display server version in welcome message (Thanks: Irina Truong).
- Set
program_name
connection attribute (Thanks: Dick Marinus). - Use
return
to terminate a generator for better Python 3.7 support (Thanks: [Zhongyang Guan]). - Add
SAVEPOINT
to SQLCompleter (Thanks: [Huachao Mao]). - Connect using a SSH transport (Thanks: Dick Marinus).
- Add
FROM_UNIXTIME
andUNIX_TIMESTAMP
to SQLCompleter (Thanks: [QiaoHou Peng]) - Search
${PWD}/.myclirc
, then${HOME}/.myclirc
, lastly/etc/myclirc
(Thanks: [QiaoHao Peng])
- When DSN is used, allow overrides from mycli arguments (Thanks: Dick Marinus).
- A DSN without password should be allowed (Thanks: Dick Marinus)
- Convert
sql_format
to unicode strings for py27 compatibility (Thanks: Dick Marinus). - Fixes mycli compatibility with pbr (Thanks: Thomas Roten).
- Don't align decimals for
sql_format
(Thanks: Dick Marinus).
- Use fileinput (Thanks: Dick Marinus).
- Enable tests for Python 3.7 (Thanks: Thomas Roten).
- Remove
*.swp
from gitignore (Thanks: Dick Marinus).
- Add
CONCAT
to SQLCompleter and remove unused code (Thanks: [caitinggui]) - Do not quit when aborting a confirmation prompt (Thanks: Thomas Roten).
- Add option list-dsn (Thanks: Frederic Aoustin).
- Add verbose option for list-dsn, add tests and clean up code (Thanks: Dick Marinus).
- Add enable_pager to the config file (Thanks: Frederic Aoustin).
- Mark
test_sql_output
as a dbtest (Thanks: Dick Marinus). - Don't crash if the log/history file directories don't exist (Thanks: Thomas Roten).
- Unquote dsn username and password (Thanks: Dick Marinus).
- Output
Password:
prompt to stderr (Thanks: [ushuz]). - Mark
alter
as a destructive query (Thanks: Dick Marinus). - Quote CSV fields (Thanks: Thomas Roten).
- Fix
thanks_picker
(Thanks: Dick Marinus).
- Refactor Destructive Warning behave tests (Thanks: Dick Marinus).
- Add DSN aliases to the config file (Thanks: Frederic Aoustin).
- Do not try to connect to a unix socket on Windows (Thanks: Thomas Roten).
- Add sql-update/insert output format. (Thanks: Dick Marinus).
- Also complete aliases in WHERE. (Thanks: Dick Marinus).
- Add
watch [seconds] query
command to repeat a query every [seconds] seconds (by default 5). (Thanks: David Caro) - Default to unix socket connection if host and port are unspecified. This simplifies authentication on some systems and matches mysql behaviour.
- Add support for positional parameters to favorite queries. (Thanks: Scrappy Soft)
- Fix source command for script in current working directory. (Thanks: Dick Marinus).
- Fix issue where the
tee
command did not work on Python 2.7 (Thanks: Thomas Roten).
-
Drop support for Python 3.3 (Thanks: Thomas Roten).
-
Make tests more compatible between different build environments. (Thanks: [David Caro])
-
Merge
_on_completions_refreshed
and_swap_completer_objects
functions (Thanks: Dick Marinus).
- Fix keyword completion suggestion for
SHOW
(Thanks: Thomas Roten). - Prevent mycli from crashing when failing to read login path file (Thanks: Thomas Roten).
- Make tests ignore user config files (Thanks: Thomas Roten).
- Add file name completion for source command (issue #500). (Thanks: Irina Truong).
- Fix UnicodeEncodeError when editing sql command in external editor (Thanks: Klaus Wünschel).
- Fix MySQL4 version comment retrieval (Thanks: François Pietka)
- Fix error that occurred when outputting JSON and NULL data (Thanks: Thomas Roten).
- Prevent missing MySQL help database from causing errors in completions (Thanks: Thomas Roten).
- Fix mycli from crashing with small terminal windows under Python 2 (Thanks: Thomas Roten).
- Prevent an error from displaying when you drop the current database (Thanks: Thomas Roten).
- Use less memory when formatting results for display (Thanks: Dick Marinus).
- Preliminary work for a future change in outputting results that uses less memory (Thanks: Dick Marinus).
- Add fish-style auto-suggestion from history. (Thanks: Amjith Ramanujam)
- Handle reserved space for completion menu better in small windows. (Thanks: Thomas Roten).
- Display current vi mode in toolbar. (Thanks: Thomas Roten).
- Opening an external editor will edit the last-run query. (Thanks: Thomas Roten).
- Output once special command. (Thanks: Dick Marinus).
- Add special command to show create table statement. (Thanks: [Ryan Smith])
- Display all result sets returned by stored procedures (Thanks: Thomas Roten).
- Add current time to prompt options (Thanks: Thomas Roten).
- Output status text in a more intuitive way (Thanks: Thomas Roten).
- Add colored/styled headers and odd/even rows (Thanks: Thomas Roten).
- Keyword completion casing (upper/lower/auto) (Thanks: Irina Truong).
- Fixed incorrect timekeeping when running queries from a file. (Thanks: Thomas Roten).
- Do not display time and empty line for blank queries (Thanks: Thomas Roten).
- Fixed issue where quit command would sometimes not work (Thanks: Thomas Roten).
- Remove shebang from main.py (Thanks: Dick Marinus).
- Only use pager if output doesn't fit. (Thanks: Dick Marinus).
- Support tilde user directory for output file names (Thanks: Thomas Roten).
- Auto vertical output is a little bit better at its calculations (Thanks: Thomas Roten).
- Rename tests/ to test/. (Thanks: Dick Marinus).
- Move AUTHORS and SPONSORS to mycli directory. (Thanks: [Terje Røsten] []).
- Switch from pycryptodome to cryptography (Thanks: Thomas Roten).
- Add pager wrapper for behave tests (Thanks: Dick Marinus).
- Behave test source command (Thanks: Dick Marinus).
- Test using behave the tee command (Thanks: Dick Marinus).
- Behave fix clean up. (Thanks: Dick Marinus).
- Remove output formatter code in favor of CLI Helpers dependency (Thanks: Thomas Roten).
- Better handle common before/after scenarios in behave. (Thanks: Dick Marinus)
- Added a regression test for sqlparse >= 0.2.3 (Thanks: Dick Marinus).
- Reverted removal of temporary hack for sqlparse (Thanks: Dick Marinus).
- Add setup.py commands to simplify development tasks (Thanks: Thomas Roten).
- Add behave tests to tox (Thanks: Dick Marinus).
- Add missing @dbtest to tests (Thanks: Dick Marinus).
- Standardizes punctuation/grammar for help strings (Thanks: Thomas Roten).
- Add ability to specify alternative myclirc file. (Thanks: Dick Marinus).
- Add new display formats for pretty printing query results. (Thanks: Amjith Ramanujam, Dick Marinus, Thomas Roten).
- Add logic to shorten the default prompt if it becomes too long once generated. (Thanks: [John Sterling]).
- Fix external editor bug (issue #377). (Thanks: Irina Truong).
- Fixed bug so that favorite queries can include unicode characters. (Thanks: Thomas Roten).
- Fix requirements and remove old compatibility code (Thanks: Dick Marinus)
- Fix bug where mycli would not start due to the thanks/credit intro text. (Thanks: Thomas Roten).
- Use pymysql default conversions (issue #375). (Thanks: Dick Marinus).
- Upload mycli distributions in a safer manner (using twine). (Thanks: Thomas Roten).
- Test mycli using pexpect/python-behave (Thanks: Dick Marinus).
- Run pep8 checks in travis (Thanks: Irina Truong).
- Remove temporary hack for sqlparse (Thanks: Dick Marinus).
- Add tee/notee commands for outputing results to a file. (Thanks: Dick Marinus).
- Add date, port, and whitespace options to prompt configuration. (Thanks: Matheus Rosa).
- Allow user to specify LESS pager flags. (Thanks: [John Sterling]).
- Add support for auto-reconnect. (Thanks: [Jialong Liu]).
- Add CSV batch output. (Thanks: Matheus Rosa).
- Add
auto_vertical_output
config to myclirc. (Thanks: Matheus Rosa). - Improve Fedora install instructions. (Thanks: Dick Marinus).
- Fix crashes occuring from commands starting with #. (Thanks: [Zhidong]).
- Fix broken PyMySQL link in README. (Thanks: [Daniël van Eeden]).
- Add various missing keywords for highlighting and autocompletion. (Thanks: [zer09]).
- Add the missing REGEXP keyword for highlighting and autocompletion. (Thanks: [cxbig]).
- Fix duplicate username entries in completion list. (Thanks: [John Sterling]).
- Remove extra spaces in TSV table format output. (Thanks: Dick Marinus).
- Kill running query when interrupted via Ctrl-C. (Thanks: [chainkite]).
- Read the
smart_completion
config from myclirc. (Thanks: Thomas Roten).
- Improve handling of test database credentials. (Thanks: Dick Marinus).
- Add Python 3.6 to test environments and PyPI metadata. (Thanks: Thomas Roten).
- Drop Python 2.6 support. (Thanks: Thomas Roten).
- Swap pycrypto dependency for pycryptodome. (Thanks: [Michał Górny]).
- Bump sqlparse version so pgcli and mycli can be installed together. (Thanks: [darikg]).
- Remove duplicate listing of DISTINCT keyword. (Thanks: Amjith Ramanujam).
- Add an try/except for AS keyword crash. (Thanks: Amjith Ramanujam).
- Support python-sqlparse 0.2. (Thanks: Dick Marinus).
- Fallback to the raw object for invalid time values. (Thanks: Amjith Ramanujam).
- Reset the show items when completion is refreshed. (Thanks: Amjith Ramanujam).
- Make the dependency of sqlparse slightly more liberal. (Thanks: Amjith Ramanujam).
- Add support for --execute/-e commandline arg. (Thanks: Matheus Rosa).
- Add
less_chatty
config option to skip the intro messages. (Thanks: Scrappy Soft). - Support
MYCLI_HISTFILE
environment variable to specify where to write the history file. (Thanks: Scrappy Soft). - Add
prompt_continuation
config option to allow configuring the continuation prompt for multi-line queries. (Thanks: Scrappy Soft). - Display login-path instead of host in prompt. (Thanks: Irina Truong).
- Pin sqlparse to version 0.1.19 since the new version is breaking completion. (Thanks: Amjith Ramanujam).
- Remove unsupported keywords. (Thanks: Matheus Rosa).
- Fix completion suggestion inside functions with operands. (Thanks: Irina Truong).
- Add stdin batch mode. (Thanks: Thomas Roten).
- Add warn/no-warn command-line options. (Thanks: Thomas Roten).
- Upgrade sqlparse dependency to 0.1.19. (Thanks: Amjith Ramanujam).
- Update features list in README.md. (Thanks: Matheus Rosa).
- Remove extra \n in features list in README.md. (Thanks: Matheus Rosa).
- Enable history search via . (Thanks: Amjith Ramanujam).
- Upgrade
prompt_toolkit
to 1.0.0. (Thanks: Jonathan Slenders)
- Change continuation prompt for multi-line mode to match default mysql.
- Add
status
command to match mysql'sstatus
command. (Thanks: Thomas Roten). - Add SSL support for
mycli
. (Thanks: Artem Bezsmertnyi). - Add auto-completion and highlight support for OFFSET keyword. (Thanks: Matheus Rosa).
- Add support for
MYSQL_TEST_LOGIN_FILE
env variable to specify alternate login file. (Thanks: Thomas Roten). - Add support for
--auto-vertical-output
to automatically switch to vertical output if the output doesn't fit in the table format. - Add support for system-wide config. Now /etc/myclirc will be honored. (Thanks: Thomas Roten).
- Add support for
nopager
and\n
to turn off the pager. (Thanks: Thomas Roten). - Add support for
--local-infile
command-line option. (Thanks: Thomas Roten).
- Remove -S from
less
option which was clobbering the scroll back in history. (Thanks: Thomas Roten). - Make system command work with Python 3. (Thanks: Thomas Roten).
- Support \G terminator for \f queries. (Thanks: Terseus).
- Upgrade
prompt_toolkit
to 0.60. - Add Python 3.5 to test environments. (Thanks: Thomas Roten).
- Remove license meta-data. (Thanks: Thomas Roten).
- Skip binary tests if PyMySQL version does not support it. (Thanks: Thomas Roten).
- Refactor pager handling. (Thanks: Thomas Roten)
- Capture warnings to log file. (Thanks: Mikhail Borisov).
- Make
syntax_style
a tiny bit more intuitive. (Thanks: Phil Cohen).
- Protect against port number being None when no port is specified in command line.
- Cast the value of port read from my.cnf to int.
- Make a config option to enable
audit_log
. (Thanks: Matheus Rosa). - Add support for reading .mylogin.cnf to get user credentials. (Thanks: Thomas Roten).
This feature is only available when
pycrypto
package is installed. - Register the special command
prompt
with the\R
as alias. (Thanks: Matheus Rosa). Users can now change the mysql prompt at runtime usingprompt
command. eg:mycli> prompt \u@\h> Changed prompt format to \u@\h> Time: 0.001s amjith@localhost>
- Perform completion refresh in a background thread. Now mycli can handle databases with thousands of tables without blocking.
- Add support for
system
command. (Thanks: Matheus Rosa). Users can now run a system command from within mycli as follows:amjith@localhost:(none)>system cat tmp.sql select 1; select * from django_migrations;
- Caught and hexed binary fields in MySQL. (Thanks: Daniel West). Geometric fields stored in a database will be displayed as hexed strings.
- Treat enter key as tab when the suggestion menu is open. (Thanks: Matheus Rosa)
- Add "delete" and "truncate" as destructive commands. (Thanks: Martijn Engler).
- Change \dt syntax to add an optional table name. (Thanks: Shoma Suzuki).
\dt [tablename]
will describe the columns in a table. - Add TRANSACTION related keywords.
- Treat DESC and EXPLAIN as DESCRIBE. (Thanks: spacewander).
- Fix the removal of whitespace from table output.
- Add ability to make suggestions for compound join clauses. (Thanks: Matheus Rosa).
- Fix the incorrect reporting of command time.
- Add type validation for port argument. (Thanks Matheus Rosa)
- Make pycrypto optional and only install it in *nix systems. (Thanks: Irina Truong).
- Add badge for PyPI version to README. (Thanks: Shoma Suzuki).
- Updated release script with a --dry-run and --confirm-steps option. (Thanks: Irina Truong).
- Adds support for PyMySQL 0.6.2 and above. This is useful for debian package builders. (Thanks: Thomas Roten).
- Disable click warning.
-
Add
source
command. This allows running sql statement from a file.eg:
mycli> source filename.sql
-
Added a config option to make the warning before destructive commands optional. (Thanks: Daniel West)
In the config file ~/.myclirc set
destructive_warning = False
which will disable the warning before runningDROP
commands. -
Add completion support for CHANGE TO and other master/slave commands. This is still preliminary and it will be enhanced in the future.
-
Add custom styles to color the menus and toolbars.
-
Upgrade
prompt_toolkit
to 0.46. (Thanks: Jonathan Slenders)Multi-line queries are automatically indented.
- Fix keyword completion after the
WHERE
clause. - Add
\g
and\G
as valid query terminators. Previously in multi-line mode ending a query with a\G
wouldn't run the query. This is now fixed.
-
Add a new special command (\T) to change the table format on the fly. (Thanks: Jonathan Bruno) eg:
mycli> \T tsv
-
Add
--defaults-group-suffix
to the command line. This lets the user specify a group to use in the my.cnf files. (Thanks: Irina Truong)In the my.cnf file a user can specify credentials for different databases and invoke mycli with the group name to use the appropriate credentials. eg:
# my.cnf [client] user = 'root' socket = '/tmp/mysql.sock' pager = 'less -RXSF' database = 'account' [clientamjith] user = 'amjith' database = 'user_management' $ mycli --defaults-group-suffix=amjith # uses the [clientamjith] section in my.cnf
-
Add
--defaults-file
option to the command line. This allows specifying amy.cnf
to use at launch. This also makes it play nice with mysql sandbox. -
Make
-p
and--password
take the password in commandline. This makes mycli a drop in replacement for mysql.
-
Add support for wider completion menus in the config file.
Add
wider_completion_menu = True
in the config file (~/.myclirc) to enable this feature.
- Prevent Ctrl-C from quitting mycli while the pager is active.
- Refresh auto-completions after the database is changed via a CONNECT command.
- Upgrade
prompt_toolkit
dependency version to 0.45. - Added Travis CI to run the tests automatically.
- Change dictonary comprehension used in mycnf reader to list comprehension to make it compatible with Python 2.6.
- Fuzzy completion is now case-insensitive. (Thanks: bjarnagin)
- Added new-line (
\n
) to the list of special characters to use in prompt. (Thanks: brewneaux) - Honor the
pager
setting in my.cnf files. (Thanks: Irina Truong)
- Fix a crashing bug in completion engine for cross joins.
- Make
<null>
value consistent between tabular and vertical output.
- Changed pymysql version to be greater than 0.6.6.
- Upgrade
prompt_toolkit
version to 0.42. (Thanks: Yasuhiro Matsumoto) - Removed the explicit dependency on six.
- Customizable prompt. (Thanks Steve Robbins)
- Make
\G
formatting to behave more like mysql.
- Formatting issue in \G for really long column values.
- Upgrade
prompt_toolkit
to 0.38. This improves the performance of pasting long queries. - Add support for reading my.cnf files.
- Add editor command \e.
- Replace ConfigParser with ConfigObj.
- Add \dt to show all tables.
- Add fuzzy completion for table names and column names.
- Automatically reconnect when connection is lost to the database.
- Fix a bug with reconnect failure.
- Fix the issue with
use
command not changing the prompt. - Fix the issue where
\\r
shortcut was not recognized.
- Add support for connecting via socket.
- Add completion for SQL functions.
- Add completion support for SHOW statements.
- Made the timing of sql statements human friendly.
- Automatically prompt for a password if needed.
- Fixed the installation issues with PyMySQL dependency on case-sensitive file systems.