Public Database for Mobile Application
For this scenario, the database server should not be publicly exposed, for obvious security reasons.

You should expose a public interface (API) of your application, probably by using something like web services. The mobile application instances then only communicate directly with the API.

This separation (decoupling) allows for all sorts of good things to happen, such as easier scale-out/load balancing.