start postgres password instalar configurar conectar change linux database postgresql configuration

linux - password - ¿Cómo configurar postgresql por primera vez?



postgresql linux command line (8)

Acabo de instalar postgresql y he especificado la contraseña x durante la instalación. Cuando intento hacer createdb y especificar cualquier contraseña, recibo el mensaje:

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

Lo mismo para createuser .

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


En Linux, PostgresQL generalmente está configurado para permitir que el usuario root inicie sesión como postgres superusuario postgres desde el shell (consola o ssh).

$ psql -U postgres

Entonces solo crearías una nueva base de datos como de costumbre:

CREATE ROLE myuser LOGIN password ''secret''; CREATE DATABASE mydatabase ENCODING ''UTF8'' OWNER myuser;

Esto debería funcionar sin tocar pg_hba.conf . Si desea poder hacer esto usando alguna herramienta GUI a través de la red, entonces debería meterse con pg_hba.conf .


Esta es mi solución:

su root su postgres psql


Esto funcionó para mí en la instalación estándar de Ubuntu 14.04 64 bits .

Seguí las instrucciones, con pequeñas modificaciones, que encontré en http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html

  1. Instale postgreSQL (si no está ya en su máquina):

sudo apt-get install postgresql

  1. Ejecute psql usando el usuario postgres

sudo –u postgres psql postgres

  1. Establezca una nueva contraseña para el usuario de postgres:

/password postgres

  1. Salga de psql

/q

  1. Edite /etc/postgresql/9.3/main/pg_hba.conf y cambie:

#Database administrative login by Unix domain socket local all postgres peer

A:

#Database administrative login by Unix domain socket local all postgres md5

  1. Reinicie postgreSQL:

sudo service postgresql restart

  1. Crea una nueva base de datos

sudo –u postgres createdb mytestdb

  1. Ejecute psql con el usuario postgres nuevamente:

psql –U postgres –W

  1. Enumere las bases de datos existentes (su nueva base de datos debería estar allí ahora):

/l


Hay dos métodos que puede usar. Ambos requieren crear un usuario y una base de datos.

  1. Usando createuser y createdb ,

    $ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabase

  2. Usar los comandos de administración 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 usuario de postgres ,

    SHOW port;

    O,

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

Sidenote: el usuario postgres

Sugiero NO modificar al usuario de postgres .

  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 tienes root para poder autenticarte como postgres .
  2. Normalmente no está protegido con contraseña y se delega en el sistema operativo host. Esto es algo bueno Esto normalmente significa que para iniciar sesión como postgres que es el equivalente de PostgreSQL de la SA de SQL Server, 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 desactivado, elimina el riesgo de un ataque de fuerza bruta a través de un superusuario nombrado. Ocultar y ocultar el nombre del superusuario tiene sus ventajas.

Las otras respuestas no fueron completamente satisfactorias para mí. 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 postgres psql template1

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

    ALTER USER postgres con la contraseña encriptada ''xxxxxxx'';

  3. Edite el archivo pg_hba.conf :

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

    Y cambie "peer" a "md5" en la línea referente a postgres:

    local all post peer md5

  4. Reinicie la base de datos:

    sudo /etc/init.d/postgresql restart

    (Aquí puede verificar que funcionó con psql -U postgres ).

  5. Cree un usuario que tenga el mismo nombre que usted (para encontrarlo, puede escribir whoami ):

    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 nuevas funciones, sea un superusuario y tenga una contraseña encriptada. Los realmente importantes son -P -E, de modo que se le pide que escriba la contraseña que se codificará, y -d para que pueda createdb .

    Tenga cuidado con las contraseñas : primero le pedirá dos veces la nueva contraseña (para el nuevo usuario), repetida, y luego la contraseña de postgres (la que se especificó en el paso 2).

  6. De nuevo, edite el archivo pg_hba.conf (consulte el paso 3 anterior) y cambie "peer" a "md5" en la línea correspondiente a "todos" los demás usuarios:

    local todos los pares md5

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

    psql template1

    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 administrador que está aquí desde el principio.

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


Probablemente necesites actualizar tu archivo pg_hba.conf . Este archivo controla lo que los usuarios pueden iniciar sesión desde qué direcciones IP. Creo que el usuario de postgres está bastante bloqueado por defecto.


Si está ejecutando macOS como yo, es posible que no tenga el usuario de postgres.

Al intentar ejecutar sudo -u postgres psql , estaba obteniendo el error sudo: unknown user: postgres

Afortunadamente hay ejecutables que proporciona postgres.

createuser -D /var/postgres/var-10-local --superuser --username=nick createdb --owner=nick

Luego pude acceder a psql sin problemas.

psql psql (10.2) Type "help" for help. nick=#

Si está creando una nueva instancia de postgres desde cero, estos son los pasos que tomé. Usé un puerto no predeterminado para poder ejecutar dos instancias.

mkdir /var/postgres/var-10-local pg_ctl init -D /var/postgres/var-10-local

Luego /var/postgres/var-10-local/postgresql.conf con mi puerto preferido, 5433.

/Applications/Postgres.app/Contents/Versions/10/bin/postgres -D /Users/nick/Library/Application/ Support/Postgres/var-10-local -p 5433 createuser -D /var/postgres/var-10-local --superuser --username=nick --port=5433 createdb --owner=nick --port=5433

¡Hecho!


Solo busque en el directorio de su instalación y ejecute este archivo "pg_env.bat", luego vaya a la carpeta bin y ejecute pgAdmin.exe. Esto debe funcionar sin duda!