兩句話概括:
- 網(wǎng)絡(luò)上的文檔添寺,因?yàn)楦髯缘呐渲铆h(huán)境不同趴拧,所以可以用來(lái)參考,但不一定對(duì)自己適用山叮;
- 官網(wǎng)文檔要稍稍權(quán)威一點(diǎn)著榴,介紹的要全面一點(diǎn),今天深有感觸屁倔;
簡(jiǎn)介
1.PostgreSQL: 是以加州大學(xué)伯克利分校計(jì)算機(jī)系開(kāi)發(fā)的 POSTGRES脑又,現(xiàn)在已經(jīng)更名為PostgreSQL,版本 4.2為基礎(chǔ)的對(duì)象關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS)锐借。PostgreSQL支持大部分 SQL標(biāo)準(zhǔn)并且提供了許多其他現(xiàn)代特性:復(fù)雜查詢问麸、外鍵、觸發(fā)器钞翔、視圖严卖、事務(wù)完整性、MVCC布轿。同樣哮笆,PostgreSQL 可以用許多方法擴(kuò)展,比如汰扭, 通過(guò)增加新的數(shù)據(jù)類型稠肘、函數(shù)、操作符萝毛、聚集函數(shù)项阴、索引。免費(fèi)使用笆包、修改环揽、和分發(fā) PostgreSQL,不管是私用庵佣、商用薯演、還是學(xué)術(shù)研究使用。
2.psql: 是PostgreSQL數(shù)據(jù)庫(kù)的命令行交互工具
3.pgAdmin: 是PostgreSQL數(shù)據(jù)庫(kù)的圖形化管理工具
參考文獻(xiàn)
老習(xí)慣秧了,列出本文參考和引用的文檔和博客跨扮,致以崇高的敬意,感興趣的可以去看看
1.http://postgresapp.com/
2.http://postgresapp.com/documentation/cli-tools.html
3.http://www.yiibai.com/postgresql/2013080439.html
1.正文
公司項(xiàng)目連的都是遠(yuǎn)程數(shù)據(jù)庫(kù)验毡,安全起見(jiàn)衡创,我還是弄個(gè)本地?cái)?shù)據(jù)庫(kù),方便自己搗騰數(shù)據(jù)和后續(xù)的學(xué)習(xí)晶通;
以前在linux(ubuntu 14.04)上璃氢,裝過(guò)PostgreSql,還算熟悉。
1.1 安裝postgresql
今天打算在Mac上安裝PostgreSql以及它的圖形化管理工具PgAdmin狮辽,方便對(duì)數(shù)據(jù)的查看和管理一也。
在Mac上安裝PostgreSql巢寡,網(wǎng)絡(luò)上很多方法都是通過(guò)homebrew來(lái)安裝,命令也很簡(jiǎn)單
brew install postgresql
但是好像還有另一種方法椰苟,就是使用官網(wǎng)提供的Postgres.app抑月,
號(hào)稱是:The easiest way to get started with PostgreSQL on the Mac。
看到這條口號(hào)舆蝴,是不是有點(diǎn)心動(dòng)谦絮,按照官網(wǎng)的提示來(lái):
Quick Installation Guide
1.Download
2.Move to /Applications
3.Double Click
Done! You now have a PostgreSQL server running on your Mac.
To use the command line programs, set up your $PATH.
If you prefer a graphical app, check out the list of GUI tools.
If you get an error saying “the identity of the developer cannot be confirmed”,
please make sure you didn’t skip step 2. (more info)
安裝好運(yùn)行,界面如下洁仗,非常簡(jiǎn)潔层皱,點(diǎn)擊Preferences可以看數(shù)據(jù)文件夾路徑;
點(diǎn)擊Open psql赠潦,按照以前在linux上安裝PostgreSql的經(jīng)驗(yàn)叫胖,安裝好后,應(yīng)該自動(dòng)創(chuàng)建了一個(gè)postgres系統(tǒng)用戶 和一個(gè) postgres數(shù)據(jù)庫(kù)用戶(具有數(shù)據(jù)庫(kù)管理權(quán)限)她奥,并且psql命令應(yīng)該會(huì)默認(rèn)使用postgres數(shù)據(jù)庫(kù)用戶 連接數(shù)據(jù)庫(kù)瓮增。然而實(shí)際情況是這樣:
可以看到,psql命令執(zhí)行后方淤,卻使用了atyun系統(tǒng)用戶來(lái)連接數(shù)據(jù)庫(kù)钉赁。
于是我推測(cè)蹄殃,postgres系統(tǒng)用戶 可能沒(méi)有創(chuàng)建成功(atyun是我這臺(tái)電腦的管理員賬號(hào))携茂。直接進(jìn)[系統(tǒng)偏好設(shè)置]->[用戶與群組]查看是否有新增postgres用戶,事實(shí)證明诅岩,并沒(méi)有創(chuàng)建成功讳苦。
還能怎么辦,自己手動(dòng)創(chuàng)建吧:
我們創(chuàng)建一個(gè)postgres系統(tǒng)用戶吩谦,密碼自己創(chuàng)一個(gè)鸳谜,賦予管理員權(quán)限,創(chuàng)建好之后式廷,如下:
補(bǔ)充:之前沒(méi)有自動(dòng)創(chuàng)建postgres系統(tǒng)用戶 成功的原因,我猜測(cè)可能是Mac的安全機(jī)制,
更改之前辜羊,要求我點(diǎn)擊鎖按鈕寂屏。
很有可能是這個(gè)原因?qū)е掳惭bPostgreSql后,沒(méi)有自動(dòng)成功的創(chuàng)建出postgres系統(tǒng)用戶蠕趁。
有了postgres系統(tǒng)用戶我們來(lái)試一下 使用psql命令來(lái)連接數(shù)據(jù)庫(kù)薛闪。
$ psql
問(wèn)題出現(xiàn):
command not found
原因是psql工具的絕對(duì)路徑?jīng)]有加載到 bash((default shell on OS X))的環(huán)境路徑$PATH中。
在之前使用postgres.app ->open psql的時(shí)候俺陋,我們看到了 psql所在的絕對(duì)路徑為:
/Applications/Postgres.app/Contents/Versions/9.5/bin/
1.2 配置我們的環(huán)境路徑
Configure your $PATH 配置我們的環(huán)境路徑(關(guān)于在mac上配置環(huán)境變量path, 這個(gè)和windows上還是挺有差異的豁延,后面會(huì)整理一篇文檔來(lái)介紹下)
Postgres.app includes many command line tools. If you want to use them, you must configure the $PATH variable.
If you are using bash (default shell on OS X), add the following line to ~/.bash_profile:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin
If you’re using the fish shell, add the following to your config.fish (normally located at ~/.config/fish/config.fish):
set PATH /Applications/Postgres.app/Contents/Versions/9.5/bin $PATH
Tips 1: You can now check if the path is set up correctly by typing which psql.
可以使用 which psql 命令 查看該工具的絕對(duì)路徑昙篙;
結(jié)果如下圖:
1.3 切換用戶,使用psql連接數(shù)據(jù)庫(kù)
可以發(fā)現(xiàn)诱咏,psql連接數(shù)據(jù)庫(kù)默認(rèn)選用的是當(dāng)前的系統(tǒng)用戶苔可;
切換其他系統(tǒng)用戶命令(會(huì)要求你輸入密碼,之前我們?cè)O(shè)置過(guò))胰苏,然后登錄數(shù)據(jù)庫(kù),發(fā)現(xiàn)會(huì)使用postgres用戶訪問(wèn)數(shù)據(jù)庫(kù)硕蛹。
su postgres
psql
至此,我們學(xué)會(huì)了如何切換系統(tǒng)用戶硕并,以及通過(guò)psql訪問(wèn)連接數(shù)據(jù)庫(kù)法焰;下面介紹如何使用PostgreSql的基礎(chǔ)用法:(創(chuàng)建、刪除)數(shù)據(jù)庫(kù)用戶倔毙,修改用戶密碼埃仪,(創(chuàng)建、刪除)數(shù)據(jù)庫(kù)陕赃,創(chuàng)建數(shù)據(jù)庫(kù)表卵蛉;
2 使用PostgreSQL
2.1 修改用戶密碼
因?yàn)镻ostgreSQL自動(dòng)創(chuàng)建了postgres數(shù)據(jù)庫(kù)用戶(默認(rèn)密碼應(yīng)該是空的),所以我們首先要修改它的密碼么库,使用psql命令連接數(shù)據(jù)庫(kù)傻丝,再使用如下命令,修改該postgres數(shù)據(jù)庫(kù)用戶的密碼(“XXXXXX”可由用戶自定義):
alter user postgres with password 'XXXXXX';
結(jié)果如下:
出現(xiàn)ALTER ROLE, 代表修改角色成功诉儒;
2.2 創(chuàng)建和刪除數(shù)據(jù)庫(kù)用戶
對(duì)應(yīng)命令如下(在postgres=# 環(huán)境下):
1.查看數(shù)據(jù)庫(kù)用戶列表: \du
2.創(chuàng)建數(shù)據(jù)庫(kù)用戶: create user user1 with password '123456';
3.刪除數(shù)據(jù)庫(kù)用戶: drop user user1;
相應(yīng)結(jié)果見(jiàn)下圖:
2.3 創(chuàng)建和刪除 數(shù)據(jù)庫(kù)
對(duì)應(yīng)命令如下(在postgres=# 環(huán)境下):
1.查看數(shù)據(jù)庫(kù)列表: \l
(list的意思)
2.創(chuàng)建數(shù)據(jù)庫(kù): create database db1;
3.刪除數(shù)據(jù)庫(kù): drop database db1;
解釋:初始有4個(gè)數(shù)據(jù)庫(kù)葡缰,數(shù)據(jù)庫(kù)atyun隸屬于atyun數(shù)據(jù)庫(kù)用戶,其他三個(gè)數(shù)據(jù)庫(kù)隸屬于postgres數(shù)據(jù)庫(kù)用戶忱反;
2.4 創(chuàng)建和刪除 數(shù)據(jù)庫(kù)表
對(duì)應(yīng)命令如下(在postgres=# 環(huán)境下):
1.選擇數(shù)據(jù)庫(kù): \c DatabaseName
(choose的意思)
2.創(chuàng)建數(shù)據(jù)庫(kù)表: create table people;
3.刪除數(shù)據(jù)庫(kù)表: drop table people;
4.查看數(shù)據(jù)庫(kù)信息:\d
(database list的意思)
3 使用pgAdmin圖形化管理數(shù)據(jù)庫(kù)
1. 運(yùn)行pgAdmin泛释,打開(kāi),創(chuàng)建連接
2.填寫(xiě)相關(guān)配置信息:
點(diǎn)擊save温算,進(jìn)行保存怜校。
3. 查看
在db1/Schemas/public/Tables/下可以看到我們剛才創(chuàng)建的 數(shù)據(jù)表(department).