簡單介紹:Mac 上安裝和使用PostgreSQL的方法

兩句話概括:

  1. 網絡上的文檔,因為各自的配置環境不同,所以可以用來參考,但不一定對自己適用;
  2. 官網文檔要稍稍權威一點,介紹的要全面一點,今天深有感觸;

簡介

1.PostgreSQL: 是以加州大學伯克利分校計算機系開發的 POSTGRES,現在已經更名為PostgreSQL,版本 4.2為基礎的對象關系型數據庫管理系統(ORDBMS)。PostgreSQL支持大部分 SQL標準并且提供了許多其他現代特性:復雜查詢、外鍵、觸發器、視圖、事務完整性、MVCC。同樣,PostgreSQL 可以用許多方法擴展,比如, 通過增加新的數據類型、函數、操作符、聚集函數、索引。免費使用、修改、和分發 PostgreSQL,不管是私用、商用、還是學術研究使用。

2.psql: 是PostgreSQL數據庫的命令行交互工具

3.pgAdmin: 是PostgreSQL數據庫的圖形化管理工具

參考文獻

老習慣,列出本文參考和引用的文檔和博客,致以崇高的敬意,感興趣的可以去看看
1.http://postgresapp.com/
2.http://postgresapp.com/documentation/cli-tools.html
3.http://www.yiibai.com/postgresql/2013080439.html

1.正文

公司項目連的都是遠程數據庫,安全起見,我還是弄個本地數據庫,方便自己搗騰數據和后續的學習;
以前在linux(ubuntu 14.04)上,裝過PostgreSql,還算熟悉。

1.1 安裝postgresql

今天打算在Mac上安裝PostgreSql以及它的圖形化管理工具PgAdmin,方便對數據的查看和管理。
在Mac上安裝PostgreSql,網絡上很多方法都是通過homebrew來安裝,命令也很簡單

brew install postgresql 

但是好像還有另一種方法,就是使用官網提供的Postgres.app,
號稱是:The easiest way to get started with PostgreSQL on the Mac。
看到這條口號,是不是有點心動,按照官網的提示來:

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)

安裝好運行,界面如下,非常簡潔,點擊Preferences可以看數據文件夾路徑;


Paste_Image.png

點擊Open psql,按照以前在linux上安裝PostgreSql的經驗,安裝好后,應該自動創建了一個postgres系統用戶 和一個 postgres數據庫用戶(具有數據庫管理權限),并且psql命令應該會默認使用postgres數據庫用戶 連接數據庫。然而實際情況是這樣:


Paste_Image.png

可以看到,psql命令執行后,卻使用了atyun系統用戶來連接數據庫。
于是我推測,postgres系統用戶 可能沒有創建成功(atyun是我這臺電腦的管理員賬號)。直接進[系統偏好設置]->[用戶與群組]查看是否有新增postgres用戶,事實證明,并沒有創建成功。

還能怎么辦,自己手動創建吧:
我們創建一個postgres系統用戶,密碼自己創一個,賦予管理員權限,創建好之后,如下:


補充:之前沒有自動創建postgres系統用戶 成功的原因,我猜測可能是Mac的安全機制,
更改之前,要求我點擊鎖按鈕。

Paste_Image.png

很有可能是這個原因導致安裝PostgreSql后,沒有自動成功的創建出postgres系統用戶。
有了postgres系統用戶我們來試一下 使用psql命令來連接數據庫。

$ psql

問題出現:

command not found

原因是psql工具的絕對路徑沒有加載到 bash((default shell on OS X))的環境路徑$PATH中。
在之前使用postgres.app ->open psql的時候,我們看到了 psql所在的絕對路徑為:

/Applications/Postgres.app/Contents/Versions/9.5/bin/

1.2 配置我們的環境路徑

Configure your $PATH 配置我們的環境路徑(關于在mac上配置環境變量path, 這個和windows上還是挺有差異的,后面會整理一篇文檔來介紹下

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 命令 查看該工具的絕對路徑;
結果如下圖:

1.3 切換用戶,使用psql連接數據庫

可以發現,psql連接數據庫默認選用的是當前的系統用戶;
切換其他系統用戶命令(會要求你輸入密碼,之前我們設置過),然后登錄數據庫,發現會使用postgres用戶訪問數據庫。

su postgres
psql

至此,我們學會了如何切換系統用戶,以及通過psql訪問連接數據庫;下面介紹如何使用PostgreSql的基礎用法:(創建、刪除)數據庫用戶,修改用戶密碼,(創建、刪除)數據庫,創建數據庫表;

2 使用PostgreSQL

2.1 修改用戶密碼

因為PostgreSQL自動創建了postgres數據庫用戶(默認密碼應該是空的),所以我們首先要修改它的密碼,使用psql命令連接數據庫,再使用如下命令,修改該postgres數據庫用戶的密碼(“XXXXXX”可由用戶自定義):

alter user postgres with password 'XXXXXX';

結果如下:


Paste_Image.png

出現ALTER ROLE, 代表修改角色成功;

2.2 創建和刪除數據庫用戶

對應命令如下(在postgres=# 環境下):
1.查看數據庫用戶列表: \du
2.創建數據庫用戶: create user user1 with password '123456';
3.刪除數據庫用戶: drop user user1;
相應結果見下圖:

2.3 創建和刪除 數據庫

對應命令如下(在postgres=# 環境下):
1.查看數據庫列表: \l (list的意思)
2.創建數據庫: create database db1;
3.刪除數據庫: drop database db1;

Paste_Image.png

解釋:初始有4個數據庫,數據庫atyun隸屬于atyun數據庫用戶,其他三個數據庫隸屬于postgres數據庫用戶;

2.4 創建和刪除 數據庫表

對應命令如下(在postgres=# 環境下):
1.選擇數據庫: \c DatabaseName (choose的意思)
2.創建數據庫表: create table people;
3.刪除數據庫表: drop table people;
4.查看數據庫信息:\d (database list的意思)

Paste_Image.png

3 使用pgAdmin圖形化管理數據庫

1. 運行pgAdmin,打開,創建連接

Paste_Image.png

2.填寫相關配置信息:

Paste_Image.png

Paste_Image.png

點擊save,進行保存。
Paste_Image.png

3. 查看
在db1/Schemas/public/Tables/下可以看到我們剛才創建的 數據表(department).
Paste_Image.png

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容