Conexión por terminal a 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
.