Las otras respuestas no fueron del todo satisfactorias para mí. Esto es lo que funcionó para postgresql-9.1 en Xubuntu 12.04.1 LTS.
-
Conéctese a la base de datos predeterminada con el usuario postgres:
sudo -u postgres psql template1
-
Establezca la contraseña para el usuario postgres, luego salga de psql (Ctrl-D):
ALTER USER postgres con contraseña cifrada 'xxxxxxx';
-
Edite el
pg_hba.conf
archivo:sudo vim /etc/postgresql/9.1/main/pg_hba.conf
y cambie "peer" a "md5" en la línea relativa a postgres:
local todos postgres
compañeromd5Para saber qué versión de postgresql está ejecutando, busque la carpeta de la versión en
/etc/postgresql
. Además, puede usar Nano u otro editor en lugar de VIM. -
Reinicie la base de datos:
sudo /etc/init.d/postgresql reiniciar
(Aquí puedes comprobar si funcionó con
psql -U postgres
). -
Crea un usuario con el mismo nombre que tú (para encontrarlo, puedes escribir
whoami
):sudo createuser -U postgres -d -e -E -l -P -r -s
<my_name>
Las opciones le dicen a postgresql que cree un usuario que pueda iniciar sesión, crear bases de datos, crear nuevos roles, es un superusuario y tendrá una contraseña cifrada. Los realmente importantes son -P -E, para que se le pida que escriba la contraseña que se cifrará, y -d para que pueda hacer un
createdb
.Cuidado con las contraseñas :primero te pedirá dos veces la nueva contraseña (para el nuevo usuario), repetida, y luego una vez la contraseña de postgres (la especificada en el paso 2).
-
Nuevamente, edite el
pg_hba.conf
(consulte el paso 3 anterior) y cambie "peer" a "md5" en la línea relativa a "todos" los demás usuarios:local todos todos
compañeromd5 -
Reinicie (como en el paso 4) y compruebe que puede iniciar sesión sin -U postgres:
plantilla psql1
Tenga en cuenta que si hace un mero
psql
, fallará ya que intentará conectarlo a una base de datos predeterminada que tenga el mismo nombre que usted (es decir,whoami
). template1 es la base de datos de administración que está aquí desde el principio. -
Ahora
createdb <dbname>
debería funcionar.