PostgreSQL创建一个数据库
看看你能否訪問數(shù)據(jù)庫服務(wù)器的第一個(gè)例子就是試著創(chuàng)建一個(gè)數(shù)據(jù)庫。一臺(tái)運(yùn)行著的 PostgreSQL 服務(wù)器可以管理許多數(shù)據(jù)庫。通常我們會(huì)為每個(gè)項(xiàng)目和每個(gè)用戶單獨(dú)使用一個(gè)數(shù)據(jù)庫。
節(jié)點(diǎn)管理員可能已經(jīng)為你創(chuàng)建了可以使用的數(shù)據(jù)庫。他應(yīng)該已經(jīng)告訴你這個(gè)數(shù)據(jù)庫的名字。如果這樣你就可以省略這一步,并且跳到下一節(jié)。
要?jiǎng)?chuàng)建一個(gè)新的數(shù)據(jù)庫(在我們這個(gè)例子里叫 mydb),你可以使用下面的命令:
$ createdb mydb它應(yīng)該生成下面這樣的響應(yīng):
CREATE DATABASE如果這樣,那么這一步就成功了,你就可以忽略本節(jié)余下的部分了。
如果你看到類似下面這樣的信息:
createdb: command not found那么就是 PostgreSQL 沒有安裝好:要么是就根本沒裝上、要么是搜索路徑?jīng)]有設(shè)置正確。嘗試用絕對(duì)路徑調(diào)用該命令試試:
$ /usr/local/pgsql/bin/createdb mydb在你的節(jié)點(diǎn)上這個(gè)路徑可能不一樣。請(qǐng)和管理員聯(lián)系或者看看安裝指導(dǎo)以獲取正確的位置。
另外一種響應(yīng)可能是這樣:
createdb: could not connect to database postgres: could not connect to server: No such file or directoryIs the server running locally and acceptingconnections on Unix domain socket "/tmp/.s.PGSQL.5432"?這意味著服務(wù)器沒有啟動(dòng),或者沒有在 createdb 預(yù)期的地方啟動(dòng)。同樣,你也要檢查安裝指導(dǎo)或者找管理員。
另外一個(gè)響應(yīng)可能是這樣:
createdb: could not connect to database postgres: FATAL: role "joe" does not exist在這里提到了你自己的登陸名。如果管理員沒有為你創(chuàng)建 PostgreSQL 用戶帳號(hào),就會(huì)發(fā)生這些現(xiàn)像。PostgreSQL 用戶帳號(hào)和操作系統(tǒng)用戶帳號(hào)是不同的。如果你就是管理員,參閱章18以獲取創(chuàng)建用戶帳號(hào)的幫助。你需要變成安裝 PostgreSQL 的操作系統(tǒng)用戶的身份(通常是 postgres)才能創(chuàng)建第一個(gè)用戶帳號(hào)。也有可能是賦予 PostgreSQL 用戶名和操作系統(tǒng)用戶名不同;這種情況下,你需要使用 -U 開關(guān)或者使用 PGUSER 環(huán)境變量聲明 PostgreSQL 用戶名。
如果你有個(gè)數(shù)據(jù)庫用戶帳號(hào),但是沒有創(chuàng)建數(shù)據(jù)庫所需要的權(quán)限,那么你會(huì)看到下面的東西:
createdb: database creation failed: ERROR: permission denied to create database并非所有用戶都經(jīng)過了創(chuàng)建新數(shù)據(jù)庫的授權(quán)。如果 PostgreSQL 拒絕為你創(chuàng)建數(shù)據(jù)庫,那么你需要讓節(jié)點(diǎn)管理員賦予你創(chuàng)建數(shù)據(jù)庫的權(quán)限。出現(xiàn)這種情況時(shí)請(qǐng)咨詢你的節(jié)點(diǎn)管理員。如果你自己安裝了 PostgreSQL ,那么你應(yīng)該以你啟動(dòng)數(shù)據(jù)庫服務(wù)器的用戶身份登陸然后參考手冊(cè)完成權(quán)限的賦予工作。[1]
你還可以用其它名字創(chuàng)建數(shù)據(jù)庫。PostgreSQL 允許你在一個(gè)節(jié)點(diǎn)上創(chuàng)建任意數(shù)量的數(shù)據(jù)庫。數(shù)據(jù)庫名必須是以字母開頭并且小于 63 個(gè)字符長。一個(gè)方便的做法是創(chuàng)建和你當(dāng)前用戶名同名的數(shù)據(jù)庫。許多工具假設(shè)它為缺省的數(shù)據(jù)庫名,所以這樣可以節(jié)省敲鍵。要?jiǎng)?chuàng)建這樣的數(shù)據(jù)庫,只需要鍵入:
$ createdb如果你再也不想使用你的數(shù)據(jù)庫了,那么你可以刪除它。比如,如果你是數(shù)據(jù)庫 mydb 的屬主(創(chuàng)建人),那么你就可以用下面的命令刪除它:
$ dropdb mydb對(duì)于這條命令而言,數(shù)據(jù)庫名不是缺省的用戶名,你必須明確聲明它。這個(gè)動(dòng)作物理上將所有與該數(shù)據(jù)庫相關(guān)的文件都刪除并且不可恢復(fù),因此做這件事之前一定要想清楚。
更多關(guān)于 createdb 和 dropdb 的信息可以在 createdb 和 dropdb 小節(jié)找到。
注意
| [1] | 為什么這么干就行了? 解釋如下:PostgreSQL 用戶名是和操作系統(tǒng)用戶賬號(hào)分開的。如果你與一個(gè)數(shù)據(jù)庫連接,你可以指定以哪個(gè) PostgreSQL 用戶名進(jìn)行連接;如果你不指定,那么缺省就是你當(dāng)前的操作系統(tǒng)賬號(hào)。如果這樣,那么總有一個(gè)與操作系統(tǒng)用戶同名的 PostgreSQL 用戶賬號(hào)用于啟動(dòng)服務(wù)器,并且通常這個(gè)用戶都有創(chuàng)建數(shù)據(jù)庫的權(quán)限。如果你不想以該用戶身份登陸,那么你也可以在任何地方聲明一個(gè) -U 選項(xiàng)來選擇一個(gè)連接時(shí)使用的 PostgreSQL 用戶名。 |
轉(zhuǎn)載于:https://www.cnblogs.com/wolaiye320/p/5540602.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的PostgreSQL创建一个数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: substring,substr,和sl
- 下一篇: CSS样式表margin和padding