set blank password for PostgreSQL user

I use postgresql command 'createuser myusername'. It prompts me for password always. If I leave password blank it gives an error that no password is specified.

I simply want to create a user with blank/no password and I'm not able to do it with Postgresql 9 under mac os x.

What steps should I take to create a user with no password. The command always asks me to enter a password.


Fixing this with createuser won't work. Per the man page for createuser, it says that login will fail if you really need a password and set --no-password. createuser just creates a user. It does not decide how the user will have to authenticate.

Authentication is handled mainly in pg_hba.conf, which decides whether or not to require passwords at login. I've never run PostgreSQL on OS X. On Linux, my distro's stock conf looks like this:

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     ident
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

Make sure you have something like the first line for for development access. Note: psql will try to connect with a unix socket if there is no --host option set. The second line would be used if you try to connect with psql --host localhost


Use .pgpass

Rather than creating a user with no password, an alternative is to create a .pgpass file with the password in to have it automatically supplied. This will be respected by all applications that use libpq to connect, which is practically all of them except the JDBC driver and the .NET driver.

Here is how to create an example .pgpass file for the user "foobar" and the password "password", with the right file permissions:

echo 'localhost:*:*:foobar:password' >> ~/.pgpass
chmod 600 ~/.pgpass