2014-01-16 48 views
9

第一個數據庫PostgreSQL的我運行命令:創建角色,而不是工作

sudo su _postgres 

然後我運行命令:

create role mixeddrinks with createdb login password 'password1' 

但它回來:

-bash: create: command not found 

我對終端和PostgreSQL不是很熟悉,所以我不確定我在做什麼錯我試圖創建一個角色和一個數據庫。

回答

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運行unix命令,如psql,createuser等。你可以告訴你在命令外殼,因爲提示符看起來是這樣的:

postgres$ 

如果你想要一個SQL外殼,讓你可以像CREATE USER運行命令,等等,你需要運行psql。如果你想要一個超級用戶SQL殼,那會是這樣的:

sudo -u _postgres psql 

這會給你一個提示,如:

postgres=# 

,您可以運行SQL命令。請記住,SQL命令以分號結尾。

postgres=# create role mixeddrinks with createdb login password 'password1'; 
+1

每當我運行它拋出一個錯誤說「須藤-u _postgres psql的」命令「無法識別當前目錄:權限被拒絕 PSQL:FATAL:角色‘_postgres’不存在」 – Tyler

+1

@TylerRice哎呀。我想讓每個將PostgreSQL for Mac OS X打包到一個房間裏的人,並且讓他們在那裏整理出來的時候讓那個倖存者離開。 'sudo -u _postgres psql -U postgres'在你特別奇怪的PostgreSQL包裝上。 –

+1

其拋出同樣的錯誤仍然...如果你不知道如何解決這個問題,我會接受你的答案,因爲它確實回答了原來的問題,我會做另一個 – Tyler