As outras respostas não foram completamente satisfatórias para mim. Aqui está o que funcionou para o postgresql-9.1 no Xubuntu 12.04.1 LTS.
-
Conecte-se ao banco de dados padrão com o usuário postgres:
sudo -u postgres psql template1
-
Defina a senha para o usuário postgres e saia do psql (Ctrl-D):
ALTER USER postgres com senha criptografada 'xxxxxxx';
-
Edite opg_hba.conf
Arquivo:
sudo vim /etc/postgresql/9.1/main/pg_hba.conf
e altere "peer" para "md5" na linha referente ao postgres:
local todos postgresparmd5
Para saber qual versão do postgresql você está executando, procure a pasta de versão em/etc/postgresql
. Além disso, você pode usar o Nano ou outro editor em vez do VIM.
-
Reinicie o banco de dados:
sudo /etc/init.d/postgresql restart
(Aqui você pode verificar se funcionou compsql -U postgres
).
-
Crie um usuário com o mesmo nome que você (para encontrá-lo, você pode digitarwhoami
):
sudo createuser -U postgres -d -e -E -l -P -r -s<my_name>
As opções dizem ao postgresql para criar um usuário que possa fazer login, criar bancos de dados, criar novas funções, ser um superusuário e ter uma senha criptografada. Os realmente importantes são -P -E, para que você digite a senha que será criptografada, e -d para que você possa fazer umcreatedb
.
Cuidado com as senhas :primeiro ele pedirá duas vezes a nova senha (para o novo usuário), repetida e, em seguida, uma vez a senha do postgres (a especificada na etapa 2).
-
Novamente, edite opg_hba.conf
(veja a etapa 3 acima) e altere "peer" para "md5" na linha referente a "todos" os outros usuários:
local todos todosparmd5
-
Reinicie (como na etapa 4) e verifique se você pode fazer login sem -U postgres:
modelo psql1
Observe que se você fizer um meropsql
, ele falhará, pois tentará conectá-lo a um banco de dados padrão com o mesmo nome que você (ou seja,whoami
). template1 é o banco de dados de administração que está aqui desde o início.
-
Agoracreatedb <dbname>
Deveria trabalhar.