I've been wondering why this wasn't supported as well, just never asked since it wasn't vital for me (though it'd make my code a lot simpler!). With federated, as far as a program is concerned, your program connects to it's normal database and uses it normally, oblivious to the fact that the data isn't actually on the server the program is connected to. The database server handles opening/closing connections to remote DBs and presents the remote tables with the federated engine as if they were local, accessing the remote servers as needed to fulfill queries. Remote MySQL just lets you use the mysql server from a remote IP. For this, you need to write code that manages those connections as opposed to letting MySQL do the job for you. It also means running more queries and doing required processing/filtering in your program in some scenarios (e.g. you cannot do things like a cross-server join without federated). TL;DR: It's not required, but Federated makes the job a lot easier and allows for things like cross-server joins, especially when there's more than one remote server involved. I'd like to see it supported too.