创建角色和数据库PostgreSQL无法正常工作

Tyl*_*ler 9 postgresql osx-snow-leopard

首先我运行命令:

sudo su _postgres
Run Code Online (Sandbox Code Playgroud)

然后我运行命令:

create role mixeddrinks with createdb login password 'password1'
Run Code Online (Sandbox Code Playgroud)

但它回来了:

-bash: create: command not found
Run Code Online (Sandbox Code Playgroud)

我对终端和PostgreSQL不是很熟悉所以我不确定我做错了什么我想创建一个角色和一个数据库.

Cra*_*ger 14

首先我运行命令sudo su _postgres,然后运行命令create role mixeddrinks with createdb login password 'password1'

你正在混合shell命令和psql命令行.

如果要使用SQL,则需要使用该psql命令.sudo su _postgres是一种将unix命令shell作为_postgres用户获取的低效方法.它没有给你一个SQL shell.您可以从unix命令shell 运行诸如psql,createuser等的unix命令.你可以告诉你在命令shell,因为提示符如下所示:

postgres$ 
Run Code Online (Sandbox Code Playgroud)

如果你想要一个SQL shell,那么你可以运行像CREATE USER等的命令,你需要运行psql.如果你想要一个超级用户SQL shell,那就像:

sudo -u _postgres psql
Run Code Online (Sandbox Code Playgroud)

这会给你一个提示:

postgres=#
Run Code Online (Sandbox Code Playgroud)

您可以在哪里运行SQL命令.请记住,SQL命令以分号结尾.

postgres=# create role mixeddrinks with createdb login password 'password1';
Run Code Online (Sandbox Code Playgroud)

  • @TylerRice你试过简单的'psql postgres`或`sudo psql postgres`吗?这最终破坏了它. (3认同)