¿Cómo configurar postgresql por primera vez?

Resuelto Rohit Banga asked hace 15 años • 12 respuestas

Acabo de instalar postgresql y especifiqué la contraseña x durante la instalación. Cuando intento hacer createdby especificar cualquier contraseña, aparece el mensaje:

createb: no se pudo conectar a la base de datos postgres: FATAL: la autenticación de contraseña falló para el usuario

Igual por createuser.

¿Cómo debería empezar? ¿Puedo agregarme como usuario a la base de datos?

Rohit Banga avatar Sep 24 '09 20:09 Rohit Banga
Aceptado

Las otras respuestas no me satisficieron del todo. Esto es lo que funcionó para postgresql-9.1 en Xubuntu 12.04.1 LTS.

  1. Conéctese a la base de datos predeterminada con el usuario postgres:

    sudo -u plantilla psql1 de postgres

  2. Establezca la contraseña para el usuario postgres, luego salga de psql (Ctrl-D):

    ALTERAR USUARIO postgres con contraseña cifrada 'xxxxxxx';

  3. Edite el pg_hba.confarchivo:

    sudo vim /etc/postgresql/9.1/main/pg_hba.conf

    y cambie "peer" a "md5" en la línea relativa a postgres:

    local todos los      pares postgres      md5

    Para saber qué versión de PostgreSQL está ejecutando, busque la carpeta de la versión en /etc/postgresql. Además, puedes usar Nano u otro editor en lugar de VIM.

  4. Reinicie la base de datos:

    sudo /etc/init.d/postgresql reiniciar

    (Aquí puedes comprobar si funcionó con psql -U postgres).

  5. Crea un usuario que tenga 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, que sea un superusuario y que tenga una contraseña cifrada. Los realmente importantes son -P -E, para que se le solicite que escriba la contraseña que se cifrará, y -d para que pueda realizar un archivo 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).

  6. Nuevamente, edite el pg_hba.confarchivo (consulte el paso 3 anterior) y cambie "peer" a "md5" en la línea relativa a "todos" los demás usuarios:

    local todos      todos      pares md5

  7. Reinicie (como en el paso 4) y verifique que pueda iniciar sesión sin -U postgres:

    plantilla psql1

    Tenga en cuenta que si hace simplemente psql, fallará ya que intentará conectarse 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.

  8. Ahora createdb <dbname>debería funcionar.

Manur avatar Oct 01 '2012 09:10 Manur

Hay dos métodos que puedes utilizar. Ambos requieren la creación de un usuario y una base de datos.

  1. Usando createuser y creadob ,

    $ sudo -u postgres createuser --superuser $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  2. Usar los comandos de administración de SQL y conectarse con una contraseña a través de TCP

    $ sudo -u postgres psql postgres
    

    Y luego en el shell psql

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

    Entonces puedes iniciar sesión,

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

    Si no conoce el puerto, siempre puede obtenerlo ejecutando lo siguiente, como postgresusuario,

    SHOW port;
    

    O,

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

Nota al margen: el postgresusuario

Sugiero NO modificar el postgresusuario.

  1. Normalmente está bloqueado desde el sistema operativo. Se supone que nadie debe "iniciar sesión" en el sistema operativo como postgres. Se supone que debes tener root para poder autenticarte como postgres.
  2. Normalmente no está protegido con contraseña y delega en el sistema operativo host. Ésto es una cosa buena . Esto normalmente significa que para iniciar sesión como postgresPostgreSQL equivalente a SQL Server SA, debe tener acceso de escritura a los archivos de datos subyacentes. Y eso significa que normalmente podrías causar estragos de todos modos.
  3. Al mantener esto deshabilitado, elimina el riesgo de un ataque de fuerza bruta a través de un superusuario designado. Ocultar y oscurecer el nombre del superusuario tiene ventajas.
Evan Carroll avatar Jan 12 '2017 04:01 Evan Carroll

Esta es mi solución:

su root
su postgres
psql
Admdebian avatar Sep 03 '2012 17:09 Admdebian