Weird issue.
I've got a CentOS 5 server running, and I can't get MySQL to allow remote connections and local connections. IP Tables is setup correctly to allow the one remote server I need to connect to MySQL to do so.
skip-networking is commented out, and I don't have a bind address.
First off, run something like this to see what you have now:
If you don't see a line like that, check what command line options are being passed to your binary by running something like this
And lastly, show us your networking options from my.cnf. By default mysql will bind to tcp 3306 on startup unless you tell it not to. If you see anything inside the [mysqld] section related to networking you could try starting with just commenting it out.
Also it might help to check the log. Its not very clear, but it will tell you if and when it binds to a port on startup like this
OK! Thanks for the help, people. Looking over your comments made me go over everything with a fine-toothed comb. Turns out my rule in iptables wasn't in the correct spot. I reordered my rules and it worked
SE-Linux is disabled or well configured?
If it's not iptables or mysql privileges and the server is listening on a tcp socket (port 3306) with it's public IP-address or with 0.0.0.0 then I guess all that's left is the tcpwrapper.
Check /var/log/auth.log (not sure if it's called that way on CentOS) and your /etc/hosts.allow/deny files.
If /etc/hosts.deny has ALL:ALL (which you should have) then add in /etc/hosts.allow:
Sounds like it's your firewall rules, if you're bound to the routable interface as you say. Provide the output of iptables -L -n.