MySQL Proxy 0.6.0 has been tagged and should hit the mirrors near you pretty soon.

In the last 3 month of development we added a lot more features to the proxy-core which should bring the proxy closer to your needs. As always the proxy is transparent to your application, no requirement for a special language, no special needs for a platform and all customizable for your needs.

The most powerful feature is Read/Write Splitting which allows you to scale a application which is unaware of replication automaticly cross several slaves without changes to your application. Instance Scale Out we say.

The Proxy also became a 1st class citizen in the MySQL world with full docs, win32 support and easy to install.

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.

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.

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 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.


  • added --no-daemon and --pid-file
  • added --no-proxy to disable the proxy
  • added test-cases
  • added support for proxy.response.packets
  • added hooks for read_auth(), read_handshake() and read_auth_result()
  • added support in read_query_result() to overwrite the result-set
  • added connection pooling
  • added a global lua-scope*
  • added support for listening UNIX sockets
  • added handling of proxy.connection.backend_ndx in connect_server() and read_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 an assert()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)


Enable javascript to load comments.