Postgres en Arch Linux
Tags: postgres, archlinux, spanish
Published: 2022-12-28 15:22:23

[PostgreSQL](https://www.postgresql.org/) o tambien conocido como [postgres](https://www.postgresql.org/) es una base de datos relacional open source muy popular que es utilizado por Netflix, Uber e Instagram (por mencionar algunos), ademas de ser soportado por muchos lenguajes de programacion.

A continuacion mostraremos como instalar PostgreSQL, dentro de [ArchLinux](archlinux.org/) o algunas de sus distribuciones basadas en el, como lo es [Manjaro](manjaro.org/), [EndeavourOS](https://endeavouros.com/), [Arco Linux](https://arcolinux.com/), [ArchCraft](https://archcraft.io/), [Garuda](https://garudalinux.org/), entre otros.

---

## Instalar Postgresql

Para poder instalar postgresql desde una distribucion Arch Linux procederemos con el siguiente comando

```sh
sudo pacman -S postgresql
```


Despues verificamos su instalacion consultando su version

```sh
postgres --version
```


Postgresql nos agrega un nuevo usuario al sistema llamado `postgres`, por ello, vamos a entrar al sistema con este usuario

```sh
sudo -iu postgres

# o

su -l postgres
```


Una vez dentro del sistema con el usuario `postgres` debemos inicializar el gestor de base de datos.

```sh
initdb -D /var/lib/postgres/data
```

---

## Configurar Postgresql

Nos salimos del sistema con este usuario. Procederemos a cambiar la configuracion del archivo `/var/lib/postgres/data/postgresql.conf`.

```sh
sudo nano /var/lib/postgres/data/postgresql.conf

	# Agregaremos/modificaremos la siguiente linea

	listen_addresses = '*'
```


Modificaremos el siguiente archivo `/var/lib/postgres/data/pg_hba.conf`, pero antes, vamos a obtener nuestra IPv4

```sh
# Obtener direccion IPv4 del computador
ip addr | grep inet

# Editar el archivo pg_hba.conf
sudo nano /var/lib/postgres/data/pg_hba.conf

	# Dentro del archivo, encontrar las siguientes lineas...

	# TYPE  DATABASE        USER            ADDRESS                 METHOD
	# "local" is for Unix domain socket connections only
	local   all             user                                    trust

	# Agrega la siguiente linea en donde
	# reemplazar xxx.xxx.xxx.xxx/xx por su dirección IP
	host    all             all             xxx.xxx.xxx.xxx/xx      md5
```
---

## Cambiar contraseña del usuario

Ahora tendremos que modificar la contraseña del usuario `postgres` dentro del sistema y dentro del servidor Postgresql.


```sh
sudo passwd postgres

# Luego de esto, ingresaremos la contraseña.
```


Y para cambiar la contraseña del servidor, ingresaremos los siguientes comandos.

```sh
sudo -iu postgres

# o

su -l postgres

# Dentro...
[postgres]$ psql
[postgres]$ ALTER USER postgres WITH password 'xxxx';
# En las 'xxxx' pondremos nuestra contraseña
```

---

## Inicializar y activar servicio de Postgresql

Para finalizar, vamos a inicializar el servicio y activarlo.

```sh
sudo systemctl start postgresql.service
sudo systemctl enable postgresql.service
sudo systemctl status postgresql.service
```

---

## Y ahora...?

Ahora solo debemos conectarnos a traves de un lenguaje como lo puede ser Python, Javascript, Java, C#, etc, etc... Solo recuerda:


```sh
user:		postgres
password:	<your_password>
host:		localhost
port:		5432
```

También podemos gestionar nuestra base de datos con ayuda de [pgAdmin](https://www.pgadmin.org/), el cual es gratuito y el principal administrador, o utilizar otros, como lo es [Beekeeper Studio](https://www.beekeeperstudio.io/) en su version community, [DbGate](https://dbgate.org/) u otro de tu preferencia.

---

### _Fuentes_

- [PostgreSQL - Wiki Arch Linux](https://wiki.archlinux.org/title/PostgreSQL#Installation)
- [github/arteaprogramar - Wiki Postgresql ](https://github.com/arteaprogramar/Linux-Installations/wiki/Manjaro-%7C-Postgresql-12-y-PGAdmin4)