I am wondering if there exists such a thing that I describe as a "reverse proxy" for MySQL Server. It should be capable of connecting to a specific host from pool of back-end servers. The key to selecting the back-end host would be obtained from part of the username.
For example, I have 3 MySQL Servers in a private LAN, each server hosts different databases with different users:
10.1.1.1
10.1.1.2
10.1.1.3
The MySQL reverse proxy would run on a public facing machine with another interface attached to this LAN.
eth0 -> Public facing IP (mysql.proxy.tld)
eth1 -> 10.1.1.254
A user wants to connect to a database hosted on 10.1.1.2 from a remote location. They would setup the MySQL client connection to use the MySQL proxy as follows:
mysql -u 'databaseuser@10.1.1.2' -h mysql.proxy.tld
The MySQL proxy server will know to use the back-end server 10.1.1.2. It will strip off anything after and including the last '@' and use what is left as the username to the back-end server.
So, the user would actually be connecting to 10.1.1.2 as 'databaseuser'.