Show HN: Mycli – A CLI for MySQL with auto-completion and syntax highlighting
mycli.net
mycli.net
Brief Intro: This is a command line tool that is intended as a replacement for MySQL client.
It works with MySQL, MariaDB and Percona.
It is written in Python and it works in Python 2.6 to Python 3.4.
This is a counter part to http://pgcli.com.
MyCli was funded through Kickstarter (https://www.kickstarter.com/projects/1839007321/mysql-cli)
Traceback (most recent call last): File "/usr/bin/mycli", line 5, in <module> from pkg_resources import load_entry_point File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2655, in <module> working_set.require(__requires__) File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 648, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 546, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: six>=1.8
Am I missing something obvious?
The suggested solution was to uninstall mycli and reinstall directly from github.
pip uninstall mycli six; pip install https://github.com/dbcli/mycli/archive/master.zip
[foo@chef-solo ~]$ mycli Traceback (most recent call last): File "/usr/bin/mycli", line 5, in <module> from pkg_resources import load_entry_point File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2655, in <module> working_set.require(__requires__) File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 648, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 546, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: six>=1.8
Running sudo python install did the trick. I'm not sure I can really recommending anyone check this out without a working install from a package manager though.
Mycli uses MySQL adapter called PyMySQL to connect to MySQL instances. I don't think it'll work with memsql.
If you're talking about writing a similar client for memsql, then yes it is possible to do that as long as there is a Python adapter for it.
http://docs.memsql.com/latest/faq/#is-memsql-a-storage-engin...
I haven't personally tried it with memsql.
$ virtualenv PEX
(PEX) $ pip install pex
(PEX) $ pex mycli -e mycli.main:cli -o mycli.pex
(PEX) $ deactivate
$ chmod +x mycli.pex
$ ./mycli.pex
Version: 1.0.1
Chat: https://gitter.im/dbcli/mycli
Mail: https://groups.google.com/forum/#!forum/mycli-users
Home: http://mycli.net
Thanks to the contributor - jweiland.net
mysql user@localhost:(none)>
You could scp the .pex to another host that also has python installed and it should run. You can also unzip it to inspect its contents...And thanks for this one: https://github.com/jonathanslenders/python-prompt-toolkit/tr...
The author has done an excellent job of keeping the APIs simple and intuitive.
It also helps that he's a good OSS maintainer (responsive and courteous). :)
Also the keybindings are missing from the docs. For example on http://mycli.net/multi-line it says "You can enable multi-line mode by pressing key" but doesn't say which key to press. And on http://mycli.net/history it says "So press and then start typing your search term to see the queries", again doesn't say what to press.
It is fixed now.
I'm not sure what you mean by view the results without re-running the query. Does scrolling not work? or do you mean if you launch a new session and want to see the results?
If you want to keep the results you can use audit logging feature (http://mycli.net/logging) which records every query and it's output into a file.
In Linux and OS X the less command should keep the output in the screen after you press 'q'.
You can try that from the command line yourself. Try:
less -SRXF <filename.txt>
That should print the file and not clear the screen when you press 'q'.
You can also override the pager to change from less to something else right from inside mycli. For example:
amjith@localhost:(none)> pager cat
That will use cat instead of less for paging the output and that should keep the output in the screen but it won't page them like less.
Good luck with it!
Am currently using: http://ewaters.github.io/altsql-shell/
Software that few people know about.Worth others trying out too.
The data world really does need these more sane solutions.