MySQL Proxy, reverse mode + source
March 26th, 2007
The MySQL proxy got some final touches to make it ready for the first release:
- a command-line interface
- some more mode descriptions for the different modes of operation
You can choose between three modes for now:
- pseudo server
- injection proxy

- replication client

For the future we plan:
- connection pooling

- replication filtering and off-loading

The options so far:
$ mysql-proxy --help
--listen-port=<port> port the pseudo mysql-server should listen on in server-mode (default: 4040)
--server-port=<port> port of the remote mysql-server in proxy- and reverse-mode (default: 3306)
--server-ip=<ip> ip-address of the remote mysql-server in proxy- and reverse-mode (default: 127.0.0.1)
--replication-user=<user> user-account for remote mysql-server in reverse-mode (default: 'repl')
--replication-password=<password> user-password remote mysql-server in reverse-mode (default: not set)
--mode=<server|proxy|reverse> operation mode
--inject-show-status inject SHOW SESSION STATUS in proxy-mode
--inject-explain inject EXPLAIN in proxy-mode
--dump-show-status dump the SHOW SESSION STATUS diff to a file instead of stdout
--fix-bug-25371 fix bug #25371 (mysqld > 5.1.12) for older libmysql versions
Source and documentation are available on http://jan.kneschke.de/projects/mysql/mysql-proxy
8 Responses to “MySQL Proxy, reverse mode + source”
Sorry, comments are closed for this article.
March 26th, 2007 at 11:25 PM The link to the .c file is dead! Thanks
March 27th, 2007 at 12:01 AM I would like to try this out, but the link to the source file seems to be broken.
April 3rd, 2007 at 02:19 PM Hi, this project sounds very cool :) I would also love to try it, but... see the other comments :) Wouldn't it be a good idea to get a "replication-assistance"-mode, where the proxy decides which queries are read-only to send them to a pool of slave-servers and the write-ones to the master. This would reduce the need of rewriting parts of an application in case you have to head over from a single-server-solution onto a replication-based one. Would love to hear your thoughts on that topic. Cheers, Ben
April 17th, 2007 at 01:15 PM Hi, I just wanted to say I'd love to test this for my systems - maybe I can find some bottlenecks here ;) But since the links are broken(yet?) I'll wait for them and hope they'll appear someday. Thanks in advance for this interesting project!
April 18th, 2007 at 10:13 AM I am itching to get my hands on this, it looks like it could have huge potential... I already have a million and one uses for such a beast and can't wait to give it a spin... but, as others have pointed out... err, link...
April 20th, 2007 at 04:06 PM This promises to be revolutionary for mysql, but where is download link?
April 23rd, 2007 at 09:20 AM When i read the documentation, i think it's a very good project, but i can't found the link for download it ...
April 24th, 2007 at 04:56 AM this is something almost exactly what i had envisioned. i tried to reverse engineer the mysql code and create a middle layer in PHP (since i don't know C) but could not get the weird packed strings and stuff to work for the initial authentication (weak...) but a native C-based (or CPP if it had to be) solution to compete with continuent's uni/cluster (java nowadays with a horribly complex setup) solution, or mysql replication (inherently flawed imho, requires downtime to resync slaves, too fragile, no auto-recovery), or mysql cluster (promising, i suppose) i suppose XA would need to be involved before it could be used with N number of independent servers all using the same data, but storing it separately (complete scale-out option, just plug in a server and go) - if you could get something going like that, you would be a god amongst mortals... (eventually perhaps it could integrate some sort of cache in it too (i.e. memcache), since theoretically the proxy will know when any data changes (?) - could intelligently cache some things i suppose? :)) keep up the good work. lighty seems cool, i've used it here and there, i want to use it more but i'm stuck supporting some sub-standard websites that won't function properly under it (don't ask...) - this could help solve my mysql scaling desire (my only other option right now is piloting mysql cluster...)