PostgreSQL Connecting to a Database
Internal
Overview
Assuming that a PostgreSQL instance is online and available, a user must connect to a particular database hosted by the instance before performing data operations. The user establishes a session, over a lower-level network or local socket connection, but in practice, the term sessions and connections are used interchangeably.
Local Connection
If the psql
client and the PostgreSQL instance run on the same machine, the connection is established by default over a local socket, and the identity used to connect is given by the O/S user account:
psql
Assuming that the username of the user executing the command is "bob", the command will attempt to connect to a database named "bob", under the user's O/S account identity. If no such database exists, the command fails with:
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: database "bob" does not exist
Local Connection to a Specific Database
psql <database-name>
Example:
psql postgres
psql (14.9 (Homebrew))
Type "help" for help.
postgres=#
Remote Connection
TO REFACTOR:
Options
-h|--host=
-U|--username
-d|--dbname
Specifies the name of the database to connect to.
-p
Specifies the port.
-c, --command
Run only single command (SQL or internal) and exit.
Examples
Connect to a Remote Database
psql -h <host-name> -U <username> -d <database-name>
psql -h dev01.example.us-west-2.rds.amazonaws.com -U root -d dev01
If the database name is not specified, will connect to ...
Connect to the Default Database
psql -h localhost -U admin
Connect as a Specific User to a Database
psql -U <username> <dbname>
Connect to a PostgreSQL Instance Running in a Kubernetes Pod that Has Been Exposed as a NodePort Service
psql -h localhost -p 5432 -U postgres