Cita: Y es cuando me pregunto, ¿Las bases de datos de los hostings habituales solo dejan manejar la base de datos desde localhost?, ¿es problema de mi aplicación?.
El problema es de permisos de usuario, no de bases de datos.
Los usuarios que se usan para acceder a una base de datos remota
deben tener permisos de acceso remoto. Cuando creas un usuario, sin indicar desde dónde se conectará, el usuario sólo tiene permisos locales, es decir, desde "localhost", que es la computadora donde el MySQL está instalado (en ese caso, en el servidor remoto).
Lo que debes hacer es indicarle que ese usuario se conectará de forma remota (usuario@'%'), para lo cual deberías decirnos cómo es que creas el usuario, es decir qué aplicación o aplicativo usas para crear el usuario.