Regarding /etc/hosts - Strictly speaking you're not required to add anything to /etc/hosts. But it is useful if you want to be able to connect to certain hosts through their private IPs using more convenient, shorter names. /etc/hosts entries can coexist with DNS A/AAAA records, but you can also define /etc/hosts entries that don't have DNS records for them. It's up to you really.
You should be aware that the iptables rule you gave:
Code:
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
would cause connections to be accepted to dst port 3306 on all IPs, public or private. You can specify a destination IP by using the -d switch, something like this:
Code:
-A INPUT -d 192.168.xxx.xxx -p tcp -m tcp --dport 3306 -j ACCEPT
That would cause that rule to only allow incoming connections to tcp port 3306 on that particular IP address to be accepted. This assumes that you have a rule afterward somewhere in the INPUT chain, or a policy set on the INPUT chain, to drop everything else that you don't specify...