PostgreSQL createdb

2021-09-13 15:29 更新

createdb — 創(chuàng)建一個(gè)新的PostgreSQL數(shù)據(jù)庫(kù)

大綱

createdb [connection-option...] [option...] [dbname [description]]

描述

createdb創(chuàng)建一個(gè)新的PostgreSQL數(shù)據(jù)庫(kù)。

通常,執(zhí)行這個(gè)命令的數(shù)據(jù)庫(kù)用戶將成為新數(shù)據(jù)庫(kù)的所有者。但是,如果執(zhí)行用戶具有合適的權(quán)限,可以通過(guò)-O選項(xiàng)指定一個(gè)不同的所有者。

createdbSQL命令CREATE DATABASE的一個(gè)包裝器。在通過(guò)這個(gè)工具和其他方法訪問(wèn)服務(wù)器來(lái)創(chuàng)建數(shù)據(jù)庫(kù)之間沒(méi)有實(shí)質(zhì)性的區(qū)別。

選項(xiàng)

createdb接受下列命令行參數(shù):

dbname

指定要被創(chuàng)建的數(shù)據(jù)庫(kù)名。該名稱(chēng)必須在這個(gè)集簇中所有PostgreSQL數(shù)據(jù)庫(kù)中唯一。默認(rèn)是創(chuàng)建一個(gè)與當(dāng)前系統(tǒng)用戶同名的數(shù)據(jù)庫(kù)。

description

指定與新創(chuàng)建的數(shù)據(jù)庫(kù)相關(guān)聯(lián)的一段注釋。

-D tablespace
--tablespace=tablespace

指定該數(shù)據(jù)庫(kù)的默認(rèn)表空間(這個(gè)名稱(chēng)被當(dāng)做一個(gè)雙引號(hào)引用的標(biāo)識(shí)符處理)。

-e
--echo

回顯createdb生成并發(fā)送到服務(wù)器的命令。

-E encoding
--encoding=encoding

指定要在這個(gè)數(shù)據(jù)庫(kù)中使用的字符編碼模式。PostgreSQL服務(wù)器支持的字符集在第 23.3.1 節(jié)中描述。

-l locale
--locale=locale

指定要在這個(gè)數(shù)據(jù)庫(kù)中使用的區(qū)域。這等效于同時(shí)指定--lc-collate--lc-ctype。

--lc-collate=locale

指定要在這個(gè)數(shù)據(jù)庫(kù)中使用的 LC_COLLATE 設(shè)置。

--lc-ctype=locale

指定要在這個(gè)數(shù)據(jù)庫(kù)中使用的 LC_CTYPE 設(shè)置。

-O owner
--owner=owner

指定擁有這個(gè)新數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)用戶(這個(gè)名稱(chēng)被當(dāng)做一個(gè)雙引號(hào)引用的標(biāo)識(shí)符處理)。

-T template
--template=template

指定用于創(chuàng)建這個(gè)數(shù)據(jù)庫(kù)的模板數(shù)據(jù)庫(kù)(這個(gè)名稱(chēng)被當(dāng)做一個(gè)雙引號(hào)引用的標(biāo)識(shí)符處理)。

-V
--version

打印createdb版本并退出。

-?
--help

顯示關(guān)于createdb命令行參數(shù)的幫助并退出。

選項(xiàng)-D-l、-E-O-T對(duì)應(yīng)于底層 SQL 命令CREATE DATABASE的選項(xiàng),關(guān)于這些選項(xiàng)的信息可見(jiàn)該命令的內(nèi)容。

createdb也接受下列命令行參數(shù)用于連接參數(shù):

-h host
--host=host

指定運(yùn)行服務(wù)器的機(jī)器的主機(jī)名。如果該值以一個(gè)斜線開(kāi)始,它被用作 Unix 域套接字的目錄。 這可以是connection string>。如果是這樣, 連接時(shí)字符串參數(shù)將覆蓋所有沖突的命令行選項(xiàng)。

-p port
--port=port

指定服務(wù)器正在監(jiān)聽(tīng)連接的 TCP 端口或本地 Unix 域套接字文件擴(kuò)展。

-U username
--username=username

要作為哪個(gè)用戶連接。

-w
--no-password

從不發(fā)出一個(gè)口令提示。如果服務(wù)器要求口令認(rèn)證并且沒(méi)有其他方式提供口令(例如一個(gè).pgpass文件),那兒連接嘗試將失敗。這個(gè)選項(xiàng)對(duì)于批處理任務(wù)和腳本有用,因?yàn)樵谄渲袥](méi)有一個(gè)用戶來(lái)輸入口令。

-W
--password

強(qiáng)制createdb在連接到一個(gè)數(shù)據(jù)庫(kù)之前提示要求一個(gè)口令。

這個(gè)選項(xiàng)不是必不可少的,因?yàn)槿绻?wù)器要求口令認(rèn)證,createdb將自動(dòng)提示要求一個(gè)口令。但是,createdb將浪費(fèi)一次連接嘗試來(lái)發(fā)現(xiàn)服務(wù)器想要一個(gè)口令。在某些情況下值得用-W來(lái)避免額外的連接嘗試。

--maintenance-db=dbname

指定要連接到來(lái)發(fā)現(xiàn)哪些其他數(shù)據(jù)庫(kù)應(yīng)該被聚簇的數(shù)據(jù)庫(kù)名。如果沒(méi)有指定,將使用postgres數(shù)據(jù)庫(kù)。而如果它也不存在(或者如果它就是要?jiǎng)?chuàng)建新數(shù)據(jù)庫(kù)的名稱(chēng)),將使用template1

環(huán)境

PGDATABASE

如果被設(shè)置,就是要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名,除非在命令行中覆蓋。

PGHOST
PGPORT
PGUSER

默認(rèn)連接參數(shù)。如果沒(méi)有在命令行或PGDATABASE指定要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名,PGUSER也決定要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名。

PG_COLOR

規(guī)定在診斷消息中是否使用顏色。 可能的值為 alwaysautonever。

和大部分其他PostgreSQL工具相似,這個(gè)工具也使用libpq(見(jiàn)第 33.14 節(jié))支持的環(huán)境變量。

診斷

在有困難時(shí),可以在CREATE DATABASEpsql中找潛在問(wèn)題和錯(cuò)誤消息的討論。數(shù)據(jù)庫(kù)服務(wù)器必須運(yùn)行在目標(biāo)主機(jī)上。同樣,任何 libpq前端庫(kù)使用的默認(rèn)連接設(shè)置和環(huán)境變量都將適用于此。

例子

要使用默認(rèn)數(shù)據(jù)庫(kù)服務(wù)器創(chuàng)建數(shù)據(jù)庫(kù)demo

$ createdb demo

要在主機(jī)eden、端口 5000 上使用template0 模板數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)demo,這里是命令行命令和底層SQL命令:

$ createdb -p 5000 -h eden -T template0 -e demo
CREATE DATABASE demo TEMPLATE template0;

參見(jiàn)

dropdb , CREATE DATABASE


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)