使用密码连接到 PostgreSQL
本文展示了使用密码连接 PostgreSQL 的各种方法。它可以通过命令行、pgpass
文件、PGPASSWORD
环境变量或连接字符串。
使用命令行界面 (CLI) 通过密码连接到 PostgreSQL
如果你的机器上安装了 PostgreSQL,你可以尝试不同的方法来连接数据库。一种简单的方法是在命令行中输入 psql
,它会询问你 admin
用户的密码。
如果你在命令中只输入 psql
而没有提及用户名,系统将询问你 PostgreSQL 的管理员用户密码,如下所示。
C:\Users\Admin>psql
Password for user Admin:
如果你想使用其他帐户登录,则需要使用标志 -U
,然后提供用户名,如下所示。
C:\Users\Admin>psql -U postgres
Password for user postgres:
psql (14.2)
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
postgres=#
在这里,CLI 要求输入用户 postgres
的密码。登录需要两个步骤。
首先,在 psql
命令中定义用户名,然后当 CLI 询问时,你输入密码。但是我们可以使用一行命令直接连接到 PostgreSQL。
为此,我们需要设置环境变量 PGPASSWORD
。
在 Windows 中:
C:\Users\Admin>set PGPASSWORD=root
在 Linux 中:
export PGPASSWORD=root
如果我们想连接到 psql
,它将从 PGPASSWORD
获取密码,该密码现在在环境中可用。
C:\Users\Admin>psql -U postgres
psql (14.2)
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
你看,现在它不需要输入密码来连接 psql
。从此处了解有关 PostgreSQL 环境变量的更多信息。
在 pgpass.conf
文件中定义密码以登录 PostgreSQL
在 PostgreSQL 的 APPDATA
文件夹中,有一个名为 pgpass.conf
的文件。你可以在那里定义你的密码。
此外,你可以使用连接参数 passfile
定义你的密码文件。文件格式如下。
hostname:port:database:username:password
这个结构在 PostgreSQL 官方页面这里上提到过。
它知道用户有效的数据库以及该特定用户的密码。
使用带密码的连接字符串连接到 PostgreSQL
当你获得不在 localhost
中的在线数据库或远程数据库时,你需要通过连接字符串进行连接。连接字符串包含一段用户名、密码、数据库名称、端口和主机地址。
连接字符串的格式如下。
postgresql://<username>:<password>@<host><port>/<database_name>?sslmode=require
如果你使用 localhost
,你不需要对远程数据库使用 sslmode
。在 Python、C++ 或 Java 项目中使用 PostgreSQL 数据库时,此方法最有用。
因此,使用连接字符串连接数据库(本地)的命令如下。
C:\Users\Admin>psql postgresql://postgres:root@localhost:5432/postgres
psql (14.2)
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
postgres=#
这里是可用于客户端身份验证的方法列表。它来自 PostgreSQL 官方文档。