gpt4 book ai didi

sql - postgres 中 createdb 的问题

转载 作者:行者123 更新时间:2023-11-29 12:38:53 25 4
gpt4 key购买 nike

我必须使用分布在不同机器上的多个 postgresql 数据库运行模拟,这些机器都运行 linux。

我成功地从源代码编译和构建了 postgresql,我也可以运行服务器,但是当我尝试用这个命令创建一个新的数据库时:

./postgresql/bin/createdb db1

我收到这个错误:

createdb: could not connect to database postgres: FATAL:  role "giulio" does not exist

giulio 是我访问所有机器的用户名。

在某些机器上它可以工作,而在其他机器上则不能。我真的无法找出问题的根源。我想这与postgres的访问控制有关。

我在谷歌上做了几次研究,但我无法找到并解决问题。

有谁知道如何完成这项工作?

谢谢,

-朱利奥

最佳答案

PostgreSQL 有自己的用户和角色,与您的操作系统不同。一般有一个专门的 super 用户,postgres。有关用户管理信息,请查看此处:

http://www.postgresql.org/docs/9.1/interactive/user-manag.html

当执行 postgres 命令时,您需要使用 -U 标志指定用户(除非您已经作为现有的 db 用户登录)。当您调用 createdb 脚本时,因为您没有使用 -U 标志,服务器假定应该使用调用者 (giulo) 的 uid,但您没有向数据库添加用户“giulio”,并且因此错误信息。

所以执行命令为


./postgresql/bin/createdb -U postgres db1

它应该可以工作。然后,稍后,您可能希望在您的数据库中创建其他用户和角色,而不是以 super 用户身份执行所有操作。

关于sql - postgres 中 createdb 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7988517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com