(partial) MySQL Proxy API Doc

I have been working a lot with MySQL proxy lately and trying to figure out how it works is a major PITA. There is virtually no documentation for it and the best way to understand how it actually works is to read the source code.

This is a list of API functions discovered by reading plugin.c in the mysql_proxy SVN source. The list may be incomplete or not entirely accurate.

[i] = integer based index

[s] = string based index


proxy.global – data structure shared amongst all lua state machines

proxy.global.config – sub structure (possibly added for esthetical reasons only)

proxy.backends – array of backends (shared)

proxy.connection – mysql connection object


proxy.backends[i].connected_clients – connected clients

proxy.backends[i].address – server Address



proxy.backends[i].pool – connection pool object


proxy.backends[i].pool.max_idle_connections – max connections

proxy.backends[i].pool.min_idle_connections – min connections

proxy.backends[i].pool.users – hash table containing sockets hashed by username


proxy.backends[i].pool.users[s].cur_idle_connections – number of sockets currently in the pool (meaning they are idle)


proxy.connection.backend_ndx – id of active backend (magic value, setting it can trigger server socket changes, i.e: setting it to 0 returns the socket into the connection pool)

proxy.connection.server – server socket object

proxy.connection.client – client socket object


proxy.connection.client.default_db – database

proxy.connection.client.username – user

proxy.connection.client.address – ip address (?)

proxy.connection.client.scrambled_password – password as it was sent from the client


proxy.connection.server.default_db – database

proxy.connection.server.username – user

proxy.connection.server.address – ip address (?)

proxy.connection.server.scrambled_password – password as it was sent from the client

proxy.connection.server.mysqld_version – mysql version

proxy.connection.server.thread_id – connection id as set during the server handshake

proxy.connection.server.scramble_buffer – password hash (?)

One response to “(partial) MySQL Proxy API Doc”