W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
看看你能否訪問數(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ù)庫。
你的站點(diǎn)管理員可能已經(jīng)為你創(chuàng)建了可以使用的數(shù)據(jù)庫。 如果這樣你就可以省略這一步, 并且跳到下一節(jié)。
要?jiǎng)?chuàng)建一個(gè)新的數(shù)據(jù)庫,在我們這個(gè)例子里叫mydb
,你可以使用下面的命令:
$ createdb mydb
如果不產(chǎn)生任何響應(yīng)則表示該步驟成功,你可以跳過本節(jié)的剩余部分。
如果你看到類似下面這樣的信息:
createdb: command not found
那么就是PostgreSQL沒有安裝好?;蛘呤歉緵]安裝, 或者是你的shell搜索路徑?jīng)]有設(shè)置正確。嘗試用絕對(duì)路徑調(diào)用該命令試試:
$
/usr/local/pgsql/bin/createdb mydb
在你的站點(diǎn)上這個(gè)路徑可能不一樣。和你的站點(diǎn)管理員聯(lián)系或者看看安裝指導(dǎo)獲取正確的位置。
另外一種響應(yīng)可能是這樣:
createdb: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections 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)是不同的。) 如果你是管理員,參閱第 21 章獲取創(chuàng)建用戶帳號(hào)的幫助。 你需要變成安裝PostgreSQL的操作系統(tǒng)用戶的身份(通常是 postgres
)才能創(chuàng)建第一個(gè)用戶帳號(hào)。 也有可能是賦予你的PostgreSQL用戶名和你的操作系統(tǒng)用戶名不同; 這種情況下,你需要使用-U
選項(xiàng)或者使用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
并非所有用戶都被許可創(chuàng)建新數(shù)據(jù)庫。 如果PostgreSQL拒絕為你創(chuàng)建數(shù)據(jù)庫, 那么你需要讓站點(diǎn)管理員賦予你創(chuàng)建數(shù)據(jù)庫的權(quán)限。出現(xiàn)這種情況時(shí)請(qǐng)咨詢你的站點(diǎn)管理員。 如果你自己安裝了PostgreSQL, 那么你應(yīng)該以你啟動(dòng)數(shù)據(jù)庫服務(wù)器的用戶身份登錄然后參考手冊(cè)完成權(quán)限的賦予工作。
你還可以用其它名字創(chuàng)建數(shù)據(jù)庫。PostgreSQL允許你在一個(gè)站點(diǎn)上創(chuàng)建任意數(shù)量的數(shù)據(jù)庫。 數(shù)據(jù)庫名必須是以字母開頭并且小于 63 個(gè)字符長。 一個(gè)方便的做法是創(chuàng)建和你當(dāng)前用戶名同名的數(shù)據(jù)庫。 許多工具假設(shè)該數(shù)據(jù)庫名為缺省數(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)的文件都刪除并且不可取消, 因此做這中操作之前一定要考慮清楚。
更多關(guān)于createdb
和dropdb
的信息可以分別在createdb和dropdb中找到。
為什么這么做的解釋:PostgreSQL用戶名是和操作系統(tǒng)用戶賬號(hào)分開的。 如果你連接到一個(gè)數(shù)據(jù)庫時(shí),你可以選擇以何種PostgreSQL用戶名進(jìn)行聯(liá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è)用于連接的PostgreSQL用戶名。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: