首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Postgres Shell创建用户

使用Postgres Shell创建用户
EN

Stack Overflow用户
提问于 2018-12-07 15:36:49
回答 3查看 1.8K关注 0票数 2

我正在学习这本书中的一篇教程:

Mele,Antonio。Django 2示例:从头开始构建强大而可靠的Python应用程序(KindleLocation1917-1918)。帕克特出版社Kindle版。

我在这部分:

  • 将全文搜索添加到博客中
    • 安装PostgreSQL

我在Windows 10上安装Postgres很好。说明中说要键入postgres shell

代码语言:javascript
复制
su postgres
createuser -dP blog

我想我正在尝试创建一个名为blog的用户,它将有一个密码并允许创建数据库?

当我这么做的时候我得到了:

代码语言:javascript
复制
Server [localhost]: su postgres
Database [postgres]: createuser -dP blog
Port [5432]:
Username [postgres]:
psql: warning: extra command-line argument "postgres" ignored
psql: warning: extra command-line argument "-d" ignored
psql: warning: extra command-line argument "createuser" ignored
psql: warning: extra command-line argument "-dP" ignored
psql: warning: extra command-line argument "blog" ignored
psql: warning: extra command-line argument "-p" ignored
psql: warning: extra command-line argument "5432" ignored
psql: could not translate host name "su" to address: Unknown host
Press any key to continue . . .

我不知道该怎么做或者到底是怎么回事?这个指令很不清楚

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-08 04:16:11

看起来,您试图在psql、su postgrescreateuser -dP blog中使用用于bash类shell的命令。su postgres说要切换postgres用户,而createuser命令是创建数据库用户的shell命令。但是,如果您在psql中,则无法访问该命令。

当psql请求数据库连接信息时,您似乎也在输入这些命令,所以即使您发送sql/psql命令,也不会在此时工作。

下面是PostgreSQL文档命令中的createuser。使用系统shell中的此命令创建数据库用户。

这是PostgreSQL文档 on CREATE ROLE。这就是从psql内部创建用户的方式。

票数 2
EN

Stack Overflow用户

发布于 2018-12-08 04:29:50

createuser是从命令行发出的命令。因为您在Windows上,这意味着它是一个.exe文件,可能位于安装Postgres的位置的bin目录中。在命令提示符或powershell提示符下使用createuser -dP blog

此外,您可能必须向-h localhost -p 5432 -U postgres -W password提供createuser.exe,以使其能够与服务器通信。

票数 1
EN

Stack Overflow用户

发布于 2020-06-25 15:07:03

我所做的,就像我在读威廉·S·文森特的“为专业人士阅读Django”时所做的那样。

一旦您单击PostgreSQL的安装,它将向您询问密码。输入:postgres,当它安装完数据库后,转到项目的settings.py,注释掉旧的:

代码语言:javascript
复制
# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }

并粘贴文本:

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

就这样!我救了你的时间!现在你欠我的!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53672593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档