如何从 psql 用户(非 linux 用户)创建数据库

如何从 psql 用户(非 linux 用户)创建数据库

我学过一些 PostgreSQL。原则上,我被教导创建一个与我的 linux 用户同名的 postgress 用户。

现在我想尝试制作一个应用程序,为此我想创建一个与应用程序数据库关联的新用户。该怎么做?

我尝试了这个:

  1. sudo -u postgres psql postgres
  2. postgres = # 创建用户 myuser,密码为 'myuserpassword' createdb;
    创建角色

然后我尝试使用刚刚创建的用户访问数据库 template1:

psql template1 myuser

当我输入psql template1然后按 Tab 键时,我没有得到用户“myuser”,也不知道为什么。

感谢帮助

答案1

当我输入 psql template1 然后按 tab 键时,我没有得到用户“myuser”,也不知道为什么。

这是 bash可编程完成这里要用到的功能。看起来,对于psqltab当光标位于数据库名称之后时,不会在命令行上建议用户名列表。但是,如果光标位于 之后,则会生成该列表-U

但尚不清楚创建数据库会给您带来什么麻烦。

假设您可以使用进入 psql psql template1 myuser,只需发出 SQL 命令

CREATE DATABASE dbname;

如果该 psql 调用失败,可能是因为pg_hba.confUnix 域套接字连接的策略是peer。将出现一条明确的错误消息说明这一点。

在这种情况下,使用psql -U username -h localhost -d template1

另一种方法是从超级用户帐户(通常是)创建数据库,postgres就像您创建用户一样,并将其所有权保留给该用户(OWNER选项CREATE DATABASE)。

相关内容