在postgres中使用createdb的问题[英] Problems with createdb in postgres

本文是小编为大家收集整理的关于在postgres中使用createdb的问题的处理方法,想解了在postgres中使用createdb的问题的问题怎么解决?在postgres中使用createdb的问题问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

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

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

./postgresql/bin/createdb db1

我收到此错误:

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

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

在某些机器上它可以工作,而在其他机器上却不行.我真的无法弄清楚问题的根源.我想这与postgres的访问控制有关.

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

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

谢谢,

-朱利奥

推荐答案

我假设在已经知道用户"giulio"的机器上,您执行 initdb 时正是这个用户使他成为 DB 超级用户.inidb(1) 的引用(强调我的):

<块引用>

--用户名=用户名选择数据库超级用户的用户名.这是默认值到运行 initdb 的有效用户的名字.超级用户的名字是什么并不重要,但可以选择保留习惯名称 postgres,即使操作系统tem 用户名不同.

在其他机器上,我假设您确实与另一个用户一起执行了 initdb,希望使用 postgres.

为了回到我建议的标准轨道,您删除"giulio"是超级用户的机器上的数据库集群,并使用标准 postgres 用户设置一个新的数据库集群.然后添加另一个用户"giulio".这将避免更多的混乱,因为一些脚本/程序需要一个名为 postgres 的超级用户帐户.

本文地址:https://www.itbaoku.cn/post/1764214.html