我是 PostgreSQL 的完全初学者,我正在按照数据库简介设置本地 PostgreSQL 数据库并连接到它。我正在运行 Debian 15,因此我执行以下操作:
# apt update
# apt install postgresql
安装成功。然后我执行以下操作:
sudo -u postgres psql
psql (15.7 (Debian 15.7-0+deb12u1))
Type "help" for help.
postgres=# \l
postgres=# createdb prismatest
postgres-# \l
postgres-# \c prismatest
connection to server on socket "/var/run/postgresql/.s.PGSQL.5433" failed: FATAL: database "prismatest" does not exist
Previous connection kept
因此,数据库列表没有显示任何内容,无法连接到据称新创建的数据库。我的用户拥有以下权限:
postgres-# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
有人能帮我弄清楚发生了什么吗?谢谢...
注意提示从第一行到第二行是如何变化的:
psql 提示您正在输入更多行相同的命令。
输入终止创建数据库语句的分号(“;”)。
在 PostgreSQL 中创建数据库有两种不同的方法。一种是通过命令行。另一种是通过 PostgreSQL 控制台。
命令行
为了能够从命令行创建数据库,您必须首先更改为具有创建数据库权限的用户。如您使用上面的 \du 命令所示,具有这些权限的用户是 postgres。
如您所见,creatdb 命令没有给出任何反馈。您需要通过列出当前数据库来确认创建:
PostgreSQL 控制台
另一种可能性是使用 PostgreSQL 控制台。要进入控制台:
root@eric-desktop:/home/eric# sudo -u postgres psql psql (15.7 (Debian 15.7-0+deb12u1)) 输入“help”获取帮助。
要确认数据库的创建,请列出数据库: