Entrada

Instalar PostgreSQL en FreeBSD

06/05/2024

Postgresql es una base de datos relacional que se ha popularizado en los últimos años. Y en este tutorial les mostrare como instalarlo en nuestro sistema FreeBSD, ya sea en el servidor principal o en un "Jail".


Requerimientos:

Tener instalado pkg. Si aun no lo tienes ejecuta el siguiente comando:

# pkg install

Tener actualizado el sistema. Para ello ejecutaremos los comandos:

# pkg update
# pkg upgrade

Instalación

Al día que se escribió este articulo la versión mas reciente de Postgresql en FreeBSD es la versión 16. Por lo que su instalación sera la siguiente:

# pkg install postgresql16-server postgresql16-client

Puedes instalar la versión 14 o 15 replazandolo por el 16.

Inicializar la base de datos con el siguiente comando:

# /usr/local/etc/rc.d/postgresql initdb

Arranque

Para iniciar el servidor de postgres tenemos 2 opciones.

  1. Si quieres que postgres inicie en el arranque del sistema:

Ejecutar el comando para habilitar el arranque:

# sysrc postgresql_enable="YES"

Y ahora ya podemos iniciar el servicio:

# service postgresql start
  1. Si queremos iniciar Postgres manualmente:

Iniciamos el servicio con el siguiente comando:

# service postgresql onestart

Y por ultimo verifiquemos que Postgres haya iniciado correctamente con el comando:

$ sockstat -46 | grep 5432

Configuración

Ahora configuraremos los usuarios de Postgres.

Postgres tiene un sistema de autenticación basado en los usuarios en el sistema. Por lo que al instalar Postgres también se creo un usuario "postgres".

Ahora cambiaremos su contraseña con el comando:

# passwd postgres

Y ahora iniciaremos con la nueva contraseña:

# su - postgres

Desde el usuario de postgres podemos crear mas usuarios y bases de datos:

$ createuser admin
$ createdb foo_db -O admin

Aquí indicamos que la base de datos foo_db pertenece al usuario admin.

Ahora tenemos que darle una contraseña al usuario admin.

Iniciamos el cliente de Postgres:

$ psql foo_db

Y dentro lo de consola ejecutaremos las siguiente consultas:

foo_db=# alter role admin with encrypted password 'yourpassword';
foo_db=# grant all privileges on database foo_db to admin;
foo_db=# exit

Por ultimo reiniciamos nuestro servicio:

# service postgresql restart

Listo, ahora ya podemos iniciar en nuestra base de datos!

Permitir acceso de la red

Para poder acceder a Postgres desde fuera de localhost haremos las siguientes modificaciones al siguiente archivo.

En /var/db/postgres/data16/postgresql.conf:

listen_addresses = '*'

Cambiaremos la configuración listen_addresses por '*'.

Y en el archivo /var/db/postgres/data15/pg_hba.conf cambiaremos todos los métodos a md5:

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     md5
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5

Y por ultimo reiniciamos el servicio:

# service postgresql restart

Eso es todo. Ahora nos podemos conectar remotamente a nuestro servicio de Postgres con nuestro cliente favorito ya sea pgAdmin, DBeaver o cualquier otro.

Tags: #postgresql #freebsd #tutorial