Cómo instalar y configurar PostgreSQL
En este artículo explicaremos cómo instalar y configurar PostgreSQL. PostgreSQL es un motor open source de bases de datos relacional que constituye una excelente alternativa a MySQL y MariaDB. Se caracteriza por tener muy buena reputación en cuanto a confiabilidad e integridad de datos.
Cómo instalar PostgreSQL
En esta sección demostraremos los diferentes métodos de instalación del motor de bases de datos PostgreSQL dependiendo del sistema operativo.
Instalación en macOS con Homebrew
Para realizar la instalación de PostgreSQL en sistemas macOS con Homebrew instalado, podemos utilizar el comando brew install
:
$ brew install postgresql
Enseguida debemos inicializar la base de datos manualmente, ejecutando el comando initdb
de PostgreSQL:
$ initdb /usr/local/var/postgres
Instalación en Debian o Ubuntu
Para realizar la instalación de PostgreSQL en Debian o Ubuntu, utilizamos el comando apt-get install
:
$ sudo apt-get install postgresql postgresql-contrib postgresql-client
No es necesario inicializar la base de datos manualmente. El proceso de instalación ya se ha encargado de ese procedimiento.
Instalación en Fedora
Para realizar la instalación de PostgreSQL en Fedora, utilizamos el comando dnf install
:
$ sudo dnf install postgresql-server postgresql-contrib
Enseguida inicializamos el motor de base de datos ejecutando el comando initdb
de PostgreSQL de la siguiente manera:
$ sudo -u postgres pg_ctl initdb -D /var/lib/pgsql/data
Nótese que el comando debe ser ejecutado por el usuario
postgres
.
Instalación en CentOS
Para realizar la instalación de PostgreSQL en CentOS, utilizamos el comando yum install
:
$ sudo yum install postgresql-server postgresql-contrib
De la misma forma que con Fedora, debemos inicializar la base de datos manualmente ejecutando el comando initdb
de PostgreSQL:
$ sudo -u postgres pg_ctl initdb -D /var/lib/pgsql/data
Instalación en Archlinux
Para realizar la instalación de PostgreSQL en Archlinux, utilizamos el comando pacman
:
$ sudo pacman -S postgresql
De la misma forma que con Fedora, debemos inicializar la base de datos manualmente ejecutando el comando initdb
de PostgreSQL:
$ sudo -u postgres pg_ctl initdb -D /var/lib/postgres/data
Cómo configurar PostgreSQL
Ahora que PostgreSQL ha sido instalado correctamente, debemos asegurarnos que esté configurado para iniciar sesión desde localhost
. Para esto, abrimos el archivo pg_hba.conf
ubicado en el directorio de configuración y lo modificamos de las siguiente forma:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Como se puede apreciar, el método de autenticación para las dos últimas entradas debe ser md5
en lugar de peer
, ident
o trust
. Esto permitirá a cualquier aplicación web configurada para acceder a una base de datos específica a través del host localhost
.
La ubicación del archivo de configuración varía según el sistema operativo:
# macOS con Homebrew
/usr/local/var/postgres/pg_hba.conf
# Debian o Ubuntu
/etc/postgresql/<version>/main/pg_hba.conf
# Fedora o CentOS
/var/lib/pgsql/data/pg_hba.conf
# Archlinux
/var/lib/postgres/data/pg_hba.conf
Para que los cambios al archivo de configuración se apliquen, debemos reiniciar PostgreSQL de la siguiente forma:
# macOS con Homebrew
$ brew services restart postgresql
# Debian o Ubuntu
$ sudo service postgresql restart
# Fedora o CentOS
$ sudo service postgresql restart
# Archlinux
$ sudo systemctl restart postgresql
Cómo utilizar PostgreSQL
Para finalizar, vamos a probar que PostgreSQL esté funcionando correctamente. Para esto vamos a crear una base de datos con su respectivo usuario.
Para crear un usuario utilizamos el comando createuser
de PostgreSQL:
$ sudo -u postgres createuser -P -d testdb-user
Enter password for new role:
Enter it again:
Para crear una base de datos utilizamos el comando createdb
de PostgreSQL, indicando el nombre del usuario que acabamos de crear y escribiendo su contraseña cuando se nos pida:
$ createdb testdb -U testdb-user -h localhost
Password:
Con la base de datos y el usuario creados, será posible iniciar sesión en la base de datos, utilizando el comando psql
:
$ psql testdb -U testdb-user -h localhost
Password for user testdb-user:
testdb=>
Ejecutamos el comando psql
indicándole el nombre de la base de datos (testdb
), el nombre de usuario (-U testdb-user
) y el host (-h localhost
).
Para cerrar la sesión del motor de bases de datos utilizamos la instrucción \q
o la combinación de teclas CTRL-D
:
testdb=> \q
$