最近在我的 Raspberry Pi 上设置 Postgresql 后,我创建了一个不是超级用户的帐户。最初设置这个我进入
psql
从终端然后执行
createuser pi -P --interactive
我为超级用户 Y 响应 N 以创建数据库 Y 以创建新角色,然后。
Create database test;
当我现在尝试简单地使用 psql 时
psql
我明白了
pi@raspberrypi:~ $ psql psql: FATAL: database "pi" does not exist
我可以去 psql 测试并在那里创建数据库,但我想知道是什么导致了这种行为。
终端会自动将 Pi 用户凭据传递给 postgresql,还是使用我系统的 Pi 帐户登录?
您没有显示
psql
您尝试用于连接到 Postgresql 服务器的命令。不过,如果没有这些信息,我可能会解释发生了什么。如果您没有在
psql
命令中指定用户,它会尝试使用您当前登录的用户名。如果不指定数据库,它将尝试加载与用户同名的数据库。您得到的错误
database "pi" does not exist
表明它无法加载数据库pi
。在您发布的问题中,您提到创建用户名pi
和数据库test
。您可能希望test
在命令中指定加载数据库psql
:psql --dbname=test
如果您没有以
pi
用户身份登录,则需要在命令中传递用户名psql
:psql --username=pi --dbname=test
如果这些都不起作用,请
psql
在您的问题中发布您的命令,我们可以更好地了解正在发生的事情。我通过以下方式解决了这个问题:sudo su postgres
psql
创建数据库 pi;
\q
出口
然后从 pi 帐户中,当您使用 psql 时,它会让您进入 pi 数据库
否则,当您执行 psql 时,您必须指定要连接的数据库(如果您只是执行 psql,它认为您想要连接到数据库 pi(您的 unix 用户名)
如果您想从 pi 帐户连接到该测试数据库:
psql --dbname=test
这样 psql 不会尝试将您连接到 pi 数据库。
希望这可以帮助某人。