GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar un servidor PostgreSQL en Ubuntu 18.04

PostgreSQL es una base de datos de código abierto admitida en todo el mundo. Con más de 30 años de servicio, PostgreSQL, gracias a los diversos complementos disponibles, es famoso por su solidez, escalabilidad y rendimiento.

Primero, conéctese a su servidor a través de una conexión SSH. Si aún no lo ha hecho, se recomienda seguir nuestra guía para conectarse de forma segura con SSH. En caso de un servidor local, vaya al siguiente paso y abra la terminal de su servidor.

Instalación de PostgreSQL

Para continuar con la instalación de PostgreSQL, use el administrador de paquetes apt. Asegúrate de actualizar el caché:

$ sudo apt update && sudo apt install postgresql postgresql-contrib

Una vez completada la instalación, el servicio estará disponible de inmediato. Verifique el archivo de registro en /var/log/postgresql/postgresql-10-main.log solo para asegurarse

#  tail /var/log/postgresql/postgresql-10-main.log

...LOG:  database system is ready to accept connections

...

Si todo funciona correctamente, el texto anterior estará en las últimas líneas del archivo de registro.

Verificando la instalación

Para verificar la instalación exitosa de PostgreSQL, use el cliente de línea de comando llamado psql. Primero, use el usuario predeterminado instalado por el servicio. Para acceder a la base de datos, el proceso de autenticación de la configuración por defecto de PostgreSQL utiliza los mismos usuarios del sistema.

Para iniciar sesión con el usuario predeterminado, desde la línea de comandos, ejecute

$ sudo -i -u postgres

Ahora, inicie el cliente y use el comando \l para ver la lista de las bases de datos disponibles:

$ sudo -i -u postgres

$ psql

postgres=# \l
                                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

(3 rows)
                postgres=# \q

[email protected]:~$ exit

Una vez completado, salga del cliente con el comando \q y regrese al usuario original escribiendo 'salir'.

Administración de usuarios y permisos

Como se mencionó anteriormente, PostgreSQL asume que cada usuario presente en su servicio también está presente en el sistema. Para crear un nuevo usuario, primero agréguelo al sistema a través de adduser:

$ sudo adduser tutorial

Adding user `tutorial' ...

Adding new group `tutorial' (1000) ...

Adding new user `tutorial' (1000) with group `tutorial' ...

Creating home directory `/home/tutorial' ...

Copying files from `/etc/skel' ...

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Changing the user information for tutorial

Enter the new value, or press ENTER for the default

        Full Name []:

        Room Number []:

        Work Phone []:

        Home Phone []:

        Other []:

Is the information correct? [Y/n] y

En el siguiente ejemplo se está creando un usuario llamado "tutorial", sin especificar otra información, como el nombre o el número de teléfono. Una vez completado, se puede crear el usuario de PostgreSQL. iniciando sesión primero con el usuario de postgres:

$ sudo -i -u postgres
                $ createuser --interactive

Enter name of role to add: tutorial

Shall the new role be a superuser? (y/n) n

Shall the new role be allowed to create databases? (y/n) n

Shall the new role be allowed to create more new roles? (y/n) n

Después de crear el usuario, establezca una contraseña, inicie sesión a través del superusuario postgres y modifique el usuario que acaba de crear:

$ psql

postgres=# ALTER USER tutorial PASSWORD 'password'; ALTER ROLE;

También se puede crear una base de datos para el usuario recién creado ejecutando el comando:

$ createdb tutorial

Una vez completado, cierre la sesión e intente iniciar sesión con el usuario recién creado:

$ sudo -i -u tutorial

[email protected]:~$ psql

psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1))

Type "help" for help.
                tutorial=> \l

                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 tutorial  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

Habilitación del acceso a clientes externos

En algunos casos, puede ser necesario permitir el acceso de clientes externos (por ejemplo, su máquina) a una o más bases de datos en el servidor. Normalmente, PostgreSQL no está configurado para aceptar conexiones que no sean locales, así que modifique algunos archivos de configuración.

El primer archivo que se modificará es el archivo de configuración principal, en /etc/postgresql/10/main/postgresql.conf.

Asegúrese de editar la siguiente línea de:

listen_addresses = 'localhost'

Con:

listen_addresses = '*'

De esta manera le informa a PostgreSQL que espere conexiones entrantes desde cualquier interfaz de red.

Asegúrese de guardar su cambio. Ahora pase a editar el archivo que administra las reglas de acceso al servidor en /etc/postgresql/10/main/pg_hba.conf, agregando la siguiente línea:

host    tutorial        tutorial 0.0.0.0/0               md5

Esta modificación permite al usuario "tutorial" acceder a su base de datos desde cualquier host. En concreto, los campos indicados son:

  1. host:el tipo de conexión que está aceptando. Los valores posibles son:

    • local:conexiones que no son de red del sistema
    • host:cualquier tipo de conexión TCP/IP
    • hostssl:Conexiones TCP/IP solo bajo protocolo SSL
    • hostnossl:Conexiones TCP/IP NO bajo protocolo SSL
  2. tutorial:nombre de la base de datos para permitir el acceso, use "all" para referirse a todas las bases de datos

  3. tutorial:nombre de usuario para otorgar acceso

  4. 0.0.0.0/0:dirección IP, en su caso está autorizando el acceso a cualquier dirección IPv4

  5. md5:metodología de autenticación aceptada, algunas de las más importantes son:

    • md5:autenticación de contraseña
    • confianza:acepta incondicionalmente la conexión incondicionalmente
    • peer:usa el nombre de usuario del sistema para conectarse solo a la base de datos del mismo nombre.

Para más información acceda a la dirección https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html o al documento oficial de PostgreSQL.

Una vez finalizado, reinicie el servicio para aplicar todos los cambios:

$ sudo systemctl restart postgresql

Linux
  1. Cómo instalar PostgreSQL y pgAdmin4 en Ubuntu 20.04

  2. Cómo instalar la ubicación en un servidor Ubuntu

  3. Cómo instalar VSFTPD en un servidor Ubuntu Cloud

  4. Cómo instalar MariaDB en Ubuntu 22.04

  5. ¿Cómo instalar Ubuntu Server 15.10 en Hyper-v?

Cómo instalar NGINX en Ubuntu 20.04

Cómo instalar el servidor Ansible en Ubuntu 18.04

Cómo instalar TimescaleDB en Ubuntu 18.04

Cómo instalar XWiki en Ubuntu 20.04

Cómo instalar ClickHouse en Ubuntu 20.04

¿Cómo instalar FTP en Ubuntu 18.04?