Please read the user manual section on client authentication.
You must ensure that you're using a user account that actually exists in PostgreSQL; the "localhost server password" is unlikely to be the password for your user account in PostgreSQL unless you set it up that way.
fe_sendauth: no password supplied suggests that you did not enter a password at all, just pressed enter. Your whole command line is way too complicated anyway; you're passing things that're defaults anyway, and you don't need to specify the port. More importantly, by passing
-h localhost you're telling PostgreSQL to use a TCP/IP connection to localhost instead of the default unix socket connection. This has authentication implications.
On most typical installs on Linux distros (which I'm guessing is what you're using, since you didn't say) the
postgres user account has
ident authentication set up in
local (unix socket) connections. If this matches your setup you should be able to simply:
sudo -u postgres createdb -E UTF8 -O pramil mydb
This isn't specific to
createdb, by the way; you're likely to have similar issues with
psql and the other tools since they all use the same connection setup code.