New Features
Read/Write Splitting
The most powerful feature for all users looking for scale out. Read about the details and how we handle the special cases in the lua-scripting layer.
- http://jan.kneschke.de/2007/8/1/mysql-proxy-learns-r-w-splitting
- http://jan.kneschke.de/2007/8/26/mysql-proxy-more-r-w-splitting
Query Statistics
By just passing through the queries and utilizing a SQL tokenizer we are now able to analyze Queries and build statistics across them to make it easier for you to tune your SQL and decide which queries you want to concentrate on most.
- http://jan.kneschke.de/2007/8/28/mysql-proxy-tracking-parallel-queries
- http://jan.kneschke.de/2007/8/24/mysql-proxy-query-stats
Query Manipulation
More interesting for the futures are the ideas around the Global Transaction ID which tags Transactions automaticly and globally in your replication setup. Very useful if you have to know if a slave knows about your last transaction on the master or when you have to turn a slave into a master:
LUA Scripting + Tutorials
We don't want to forget that all the above features are driving a by scripting engine. All the code is included and documented in the package and we made sure that the tutorials cover all pieces of the proxy. Read http://dev.mysql.com/tech-resources/articles/proxy-gettingstarted.html as a jump start.
Query Filtering and Blocking
You can use the proxy to block users or log the whole authentication face to see which users fail to log in and use the wrong passwords. Or how about filtering SQL injections before they hit the server ? The proxy gives you access to this information.
ChangeLog
- added
--no-daemonand--pid-file - added
--no-proxyto disable the proxy - added test-cases
- added support for proxy.response.packets
- added hooks for
read_auth(),read_handshake()andread_auth_result() - added support in
read_query_result()to overwrite the result-set - added connection pooling
- added a global lua-scope
proxy.global.* - added support for listening UNIX sockets
- added handling of
proxy.connection.backend_ndxinconnect_server()andread_query()aka read/write splitting added tokenizer for the SQL syntax
fixed decoding of len-encoded ints for 3-byte notation
- fixed check for glib2 to require at least 2.6.0
- fixed mem-leak with proxy.response.* is used
- fixed handling of (SQL) NULL in result-sets
- fixed inj.resultset.affected_rows on SELECT queries
- fixed len-encoding on
proxy.resulsets - fixed assertion when all backends are down and we try to connect
- fixed assertion when connection to the MySQL 6.0.1
- fixed crash if proxy.connection is used in
connect_server() - fixed connection-stalling if
read_query_result()throws anassert()ion - fixed assertion at
COM_SHUTDOWN(#29719) - fixed assertion at login with empty password + empty default db (#29719)
- fixed assertion on result-packets like
[ field-len | fields | EOF | ERR ](#29732) - fixed compilation on win32
- fixed assertion on
COM_BINLOG_DUMP(#29764)