postgresql安裝和基本操作

之前試過macports,但是看網上的評價不怎麼樣,主要是說會安裝一些其他的包,對於我這樣有潔癖的來說當然不行了。另外看到HomeBrew,便試了下,果然很爽,尤其是對於用慣了apt-get的來說。主頁上有很方便的安裝方法,但是蛋疼的是,在天朝常常會沒法連接,沒關係,可以打開這個地址,將網頁另存爲以.rb結尾的文件,然後終端中使用ruby 文件.rb就可以了。但是,有時候就是打開這個raw頁面也需要爬牆,唉,無奈。好在爬牆總不是什麼困難的事情。

安裝好HomeBrew之後,使用

brew update&brew upgrade

更新後,便可以開始postgresql了。

brew install postgresql

創建postgreSql數據庫:

initdb /usr/local/var/postgres

啓動服務:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

停止服務:

pg_ctl -D /usr/local/var/postgres stop -s -m fast

自動啓動服務:

mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/postgresql/9.2.4/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

刪除自動啓動服務:

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

好了,現在基本就算完成了,很簡單。這時候下載pgadmin3,安裝之後會出現role 'postgres' does not exist的錯誤,原因你是沒有創建postgres用戶。

createuser -d -a -P postgres

執行完這行命令後,postgresl角色就創建好了,再連接就不會報錯。

導入sql文件,如導入back.sql:

psql -d database_name -f back.sql

在linux下需要首先切換到postgres用戶再執行該命令:

su postgres

導出數據庫到文件:

pg_dump database_name > back.sql

卸載postgresql,如果是使用homebrew安裝的話,就和簡單了:

brew uninstall postgresql

如果是下載安裝包安裝的,有兩種方法。
1. 自動卸載,在安裝目錄下,mac下是/Applications/Postgresql下有個uninstall-postgresql.app,雙擊執行就可以了。
2. 手動刪除。

  • 停止服務

sudo /sbin/SystemStarter stop postgresql-9.2

  • 移除菜單圖標

sudo rm -rf /Applications/PostgreSQL 9.2

  • 移除ini文件

sudo rm -rf /etc/postgres-reg.ini

  • 移除startup items

sudo rm -rf /Library/StartupItems/postgresql-9.2

  • 移除數據和安裝文件

sudo rm -rf /Library/PostgreSQL/9.2

  • 移除postgres用戶

sudo dscl . delete /users/postgres

PS: 
可參考這兩篇blog
1. http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/
2. http://kidsreturn.org/2012/03/install-postgresql-on-mac-lion-via-homebrew/

基本操作

PostgreSQL安裝好後,其會自動以本機當前登錄用戶名創建三個數據庫(Schema),你可以運行以下命令查看:psql -l

psql是PostgreSQL的交互式命令行工具

  • 連接數據庫

    • psql -d DBname -h Hostname -p Port -U Username => 指定參數連接

    • psql postgres => 連接當前用戶名下的postgres數據庫

  • 創建用戶

    • 連接數據庫 psql postgres

    • 創建用戶 CREATE USER username [WITH PASSWORD 'password'];

  • 創建數據庫

    • CREATE DATABASE dbname;

  • 授權

    • 授予所有權限 GRANT ALL PRIVILEGES ON DATABASE dbname to username;

    • 授予查詢權限 GRANT SELECT ON DATABASE dbname to username;

    • 權限列表 SELECT INSERT UPDATE DELETE RULE REFERENCES TRIGGER CREATE TEMPORARY EXECUTE USAGE

  • 常用命令

    • 連接數據庫 psql postgres

    • 列出所有數據庫 postgres=# \l

    • 列出用戶 postgres=# \du

    • 列出數據表 postgres=# \dt

    • 描述數據表 postgres=# \d tablename

 postgres=# 爲命令行提示符


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章