Conexión por terminal a PostgreSQL

Author
By Darío Rivera
Posted on 2020-01-05 in PostgreSQL

PostgreSQL es uno de los motores de bases de datos más populares entre los usuarios Unix. El día de hoy veremos cómo realizar una conexión a PostgreSQL desde la terminal con diferentes opciones cliente.

Conexión por defecto

La forma más rápida de realizar una conexión es ejecutar el comando psql con el nombre de la base de datos a la cual se desea ingresar.

psql db_name

Para que puedas conectarte de esta manera es necesario que haya un método de autenticación de confianza lo cuál depende de cómo fue instalado el motor de bases de datos y en qué sistema operativo. Para saber si en efecto existe un tipo de autenticación de confianza (Trust Authentication) puedes revisar el contenido del archivo de configuración pg_hba.conf. A continuación puedes ver un ejemplo de las últimas líneas de este archivo.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

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

De todas estas líneas, las siguiente es la que no dice que cualquier usuario con cuenta en el servidor puede ingresar al clúster con cualquier usuario y a cualquier base de datos.

local   all             all                                     trust

Conexión con user, password y base de datos

La forma más habitual de conectarse suele darse indicando explícitamente el usuario y la base de datos a la cuál se desea ingresar.

psql --username=user_name --password db_name

El parámetro --username puede ser reemplazado por -U y el parámetro --password por -W. Este último indica que se debe ingresar el password del usuario una vez ejecutado el comando (la consola lo solicitará).

Conexión y ejecución de un comando

En algunos casos suele ser útil realizar una conexión con el fin de ejecutar un comando determinado y terminar la sesión de manera inmediata. Puede ser por ejemplo una tarea programada o una ejecución desde un lenguaje de programación.

psql -U user_name -W db_name --command='select now()'

Conexión y ejecución de un archivo

Otra forma habitual de conexión suele ser la ejecución de un script la cuál puede realizarse de la siguiente forma:

psql db_name --file=file.sql

El parámetro --file también puede ser reemplazado por -f.


Si te ha gustado este artículo puedes invitarme a tomar una taza de café

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.