GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo configurar postgresql por primera vez?

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.

  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 contraseña cifrada 'xxxxxxx';

  3. 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ñero md5

    Para 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.

  4. Reinicie la base de datos:

    sudo /etc/init.d/postgresql reiniciar

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

  5. Cree un usuario que tenga el mismo nombre que usted (para encontrarlo, puede 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).

  6. 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ñero md5

  7. 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.

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


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

$ psql -U postgres

Luego simplemente crearía 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á meterse con pg_hba.conf .


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

  1. Uso de createuser y createdb ,

    $ sudo -u postgres createuser --superuser $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  2. Uso de los comandos de administración de SQL y conexión 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 el postgres usuario,

    SHOW port;
    

    O,

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

Nota al margen:el postgres usuario

Sugiero NO modificando el postgres usuario.

  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 que ser root para poder autenticarte como postgres .
  2. Normalmente no está protegido por contraseña y se delega al sistema operativo host. Esto es algo bueno . Esto normalmente significa iniciar sesión como postgres que es el equivalente de PostgreSQL del 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 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.

Linux
  1. Cómo instalar y configurar Postgres 13 Ubuntu 20.04

  2. Cómo instalar y configurar Postgres 13 en Centos 8

  3. Cómo instalar y configurar Postgres 14 en Debian 11

  4. Cómo instalar y configurar Postgres 14 en Fedora 34

  5. ¿Cómo se interpreta el comodín * como un comando?

Cómo configurar tu sistema operativo Raspberry Pi para usarlo por primera vez

Cómo saber los grupos de un usuario de Linux

Cómo configurar el CRM ONLYOFFICE para las necesidades de su negocio

¿Cómo deshabilitar el inicio de sesión SSH para el usuario raíz en Linux?

Cómo instalar y configurar el cortafuegos CSF para Linux

¿Cómo borro las credenciales en AWS Configure?