sudo dnf install postgresql-server postgresql-contrib
Instalamos el servidor de postgreSQL y postgreSQL-contrib que son características de la distribución no habilitadas por defecto, aqui encontrareis mas información Información de postgreSQL-contrib
Instalado el servidor lo primero que haremos activarlo
sudo systemctl enable postgresql
Después inicializamos el servidor:sudo postgresql-setup --initdb --unit postgresql
Esto creará los archivos de configuración postgresql.conf y pg_hba.conf y nos dice las rutas donde están estos fichero (/var/lib/pgsql/data) porque después tendremos que hacer una modificaciones
E iniciamos el servidor de base de datos postgreSQL
sudo systemctl start postgresql
Hechos estos pasos podemos acceder al servidor con el comando psql pero como postgreSQL esta muy integrado con Linux al instalar el servidor ha creado un usuario del sistema postgres y tenemos que acceder a través de el a al consola de administración de postgresql de la siguiente formasudo -u postgres psql
y entraremos en la consola de postgreSQL donde podemos ejecutar comandos, y lo primero que haremos es cambiarle el password al usuario postgres (OJO, que no es el mismo que el del sistema, son dos usuarios diferentes). Para cambiar el password ejecutamos el siguiente comando dentro del servidor de postgres
\password postgres
Acceso remoto a postgreSQL
Ahora modificamos los ficheros de configuración para tener acceso remoto al servidor.En el fichero /var/lib/pgsql/data/postgresql.conf y hay que poner la siguiente linea al final del fichero
listen_addresses = '*'
Esto da acceso a cualquier IP al servidor con lo que lo logico en entornos de producción es limitarlo a IPs "amigas" y no poner un *Ahora modificamos el fichero /var/lib/pgsql/data/pg_hba.conf para configurar accesos y usuarios. Añadimos las siguientes dos líneas, yo siempre lo pongo todo al final.
local all postgres md5
host all all 0.0.0.0 0.0.0.0 md5
La segunda linea da acceso a todas las IPs del mundo mundial por lo que lo mismo que en el caso anterior lo ideal es restringirlo a IP's "amigas", sustituir los 0.0.0.0 por IPs o rangos de IP's
Reiniciamos servidor
sudo systemctl restart postgresql
Ahora nos queda probarlo desde un servidor externo, pero antes hay que habilitar el puerto 5432 en el firewall
firewall-cmd --permanent --add-port=5432/tcpz
firewall-cmd --add-port=5432/tcp
sudo dnf install postgresql-client # en fedora
sudo apt install postgresql-client # en ubuntu
psql -U postgres -W -h 192.168.1.146 -p 5432
Al instalar el cliente de postgresql ha instalado el programa para administrarlo y con psql poniendo la ip del host y el puerto nos podemos conectar remotamente. Para salir de la consola de psql escribir \q
También podemos utilizar administradores gráficos como pgadmin4 o adminer
¿Y como probar esto si estáis interesados y no tenéis una servidor a mano? pues con Virtualbox y una maquina virtual instalando Fedora Server y desde vuestro local podéis probar la conexión remota :-)
Y esto es todo, feliz programming!!
Saludos
Alex.
/