Como faço o login e autentico o Postgresql após uma nova instalação?

Fiz uma nova instalação de postgres 8.4 no ubuntu mint. Como faço para criar um usuário para postgres e login usando psql?

Quando escrevo psql, diz-me apenas ...
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
Author: Evan Carroll, 2010-01-31

5 answers

Há dois métodos que pode usar. Ambos requerem a criação de um utilizador e uma base de dados.

  1. Utilizar createuser e createdb,

    $ sudo -u postgres createuser -s $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  2. Usando os comandos de administração SQL, e conectando-se com uma senha sobre TCP

    $ sudo -u postgres psql postgres
    

    E depois na concha psql

    CREATE ROLE myuser LOGIN PASSWORD 'mypass';
    CREATE DATABASE mydatabase WITH OWNER = myuser;
    

    Depois podes entrar,

    $ psql -h localhost -d mydatabase -U myuser -p <port>
    

    Se você não conhece o porto, você pode sempre obtê-lo executando o seguinte, como o postgres utilizador,

    SHOW port;
    

    Ou

    $ grep "port =" /etc/postgresql/*/main/postgresql.conf
    

Nota lateral: o utilizadorpostgres

Sugiro Não modificar o utilizadorpostgres.

    Normalmente está trancada do so. Ninguém deveria "entrar" no sistema operacional como postgres. É suposto ter raiz para se autenticar como postgres. Normalmente não é protegido por senha e delega no sistema operativo anfitrião. Isto é uma coisa boa. Isto significa normalmente para registar em as postgres, que é o equivalente PostgreSQL do servidor SQL SA, Você tem que ter acesso de escrita aos arquivos de dados subjacentes. E, isso significa que normalmente podes destruir o caos de qualquer maneira. Ao manter isto desactivado, elimina-se o risco de um ataque de Força bruta através de um super-utilizador. Esconder e esconder o nome do super-utilizador tem vantagens.
 71
Author: Evan Carroll, 2017-01-12 04:12:04

Por omissão, teria de usar o utilizador do postgres:

sudo -u postgres psql postgres
 31
Author: user262976, 2010-01-31 17:25:12

O erro que está a obter é porque o seu nome de utilizador-ubuntu não é um utilizador de Postgres válido.

Tem de dizer ao psql qual o nome de Utilizador da base de dados a usar

psql -U postgres

Você também pode precisar de especificar a base de dados para se ligar a

psql -U postgres -d <dbname>
 11
Author: cope360, 2010-01-31 17:40:01

Se o seu cliente de base de dados se ligar ao TCP/IP e tiver o ident auth configurado no seu pg_hba.conf verifique se tem um identd instalado e em execução. Isto é obrigatório mesmo que você tenha apenas clientes locais conectando-se a"localhost".

Também tenha cuidado para que hoje em dia o identd possa ter que ser IPv6 habilitado para o Postgresql receber clientes que se ligam ao localhost.

 3
Author: toka, 2017-04-13 12:22:47

Também pode ligar-se à base de dados como utilizador "normal" (não postgres):

postgres=# \connect opensim Opensim_Tester localhost;

Password for user Opensim_Tester:    

You are now connected to database "opensim" as user "Opensim_Tester" on host "localhost" at port "5432"
 3
Author: Dutch Glory, 2014-07-26 21:20:09