El problema esta en los permisos que tiene el usuario en cada uno de los servidores....
En tu servidor privado tienes permiso para conectarte desde localhost y en
www.freehostia.com seguramente tambien pero el problema es que localhost son maquinas distintas en cada caso.
Dudo que un servidor remoto gratuito te permita definir al usuario con permisos para conectarse des de una maquina distinta a la suya (a su localhost). En tu servidor privado en principio deberías hacer lo que quieras. Luego redefine los permisos del usuario en tu servidor privado para que pueda acceder des de fuera nombreUsuario@% esto le permitira conectar desde qualquier maquina...
Luego situa los scripts en el servidor remoto cambiando las direcciones claro... para conectar a tu servidor privado tendrás que usar la IP o el dominio (no localhost) y para conectar al gratuito deberas usar seguramente "localhost" o lo que te indique el ISP.
Es decir "localhost" es una dirección relativa al servidor alojado en la misma maquina donde corre el script (simplificando).
El script tal y como lo muestras funcionara en parte en el servidor privado, pero no puede acceder al remoto porque no tienes permisos para hacerlo des de fuera....
Si lo pones en el remoto no conecta con el privado puesto que estas diciendo "localhost" como dirección y eso en este caso apunta a lo mismo que
www.freehostia.com luego no encuentra las bbdd...