天天看點

Mac操作postgres——使用homebrew

homebrew安裝postgresql資料庫 (今天廢了老半天才把MacPort解除安裝掉,還是homebrew好用啊。。。)

我是在資料庫初始化那個地方卡住了,主要還是誤解了Postgres資料庫預設使用者的問題,剛安裝完,他沒有預設超級使用者,當你初始化後,預設使用者才被建立,預設使用者是初始化檔案夾所屬于的使用者)

1. 首先確定 mac 已經安裝好了 homebrew(網上好多教程是用macport安裝的,但是用對多對使用者都了解macport會給你亂安裝很多庫檔案,整的我心愛對電腦很亂,是以後來就用homebrew部署軟體了)

2. 先用Homebrew 搜尋下postgres的源:brew search postgres,後來出來很多關于postgresql的安裝包名"postgresql"。

3.找一個安裝:brew install postgresql

3. 預設安裝在了 /usr/local/Cellar/ 下。。。

按照步驟來進行初始化postgres資料庫

4. 如果你想解除安裝:

brew uninstall postgresql

開始初始化配置:

sudo mkdir   /opt/local/var/db/postgresql/defaultdb #建立任意檔案夾做資料庫目錄

ls -l  顯示此檔案屬于root

chown  目前使用者  /opt/local/var/db/postgresql/defaultdb   将此目錄隸屬于目前使用者

./initdb -D /opt/local/var/db/postgresql/defaultdb  #初始化資料庫目錄檔案(前提是你目前使用者可以讀寫通路此檔案,假如出錯,肯定是權限問題,回到上一步檢查)

./pg_ctl  start   -D /opt/local/var/db/postgresql/defaultdb

這樣資料庫開啟了。。。。

此時初始化檔案建立好後,會預設增加一個資料庫超級管理者使用者,就是上面那個“目前使用者”,而不是postgres,在很多網站上寫的預設使用者是postgres,這是在初始化設定的,是以資料庫剛安裝完後根本沒有預設管理者,他是在你初始化後建立的。上面./initdb -D 就是初始化資料庫檔案,此後的預設使用者就是 /opt/local/var/db/postgresql/defaultdb的擁有者)

./psql -U  目前使用者 –h localhost -d  postgres  (使用者名:目前使用者資料庫:postgres  (預設的))

這裡-U postgres表示作為postgres使用者連接配接伺服器,-h localhost表示連接配接運作在本地主機上的資料庫伺服器,-d 表示登入相關資料庫,如果沒有指定使用者名,PostgreSQL将認為使用登入主機的使用者名。如果省略了使用者名和資料庫名,表明以作業系統的身份登入到資料庫伺服器,此時要求在PostgreSQL伺服器中有一個與作業系統同名的登入使用者和資料庫。使用psql --help可以顯示psql的所有指令選項。其中,最重要的選項包括,-U<user>選項允許指定與登入到作業系統使用者名不同的使用者名登入到資料庫。-d<dbname>選項指定連接配接的資料庫。-h<host>選項指定連接配接的主機名。-p<port>選項用來指定資料庫伺服器的端口号。

提示符“postgres=#”表示連接配接到名為“postgres”的資料庫,該資料庫是預設資料庫。“#”表示是作為資料庫超級使用者連接配接的。psql客戶程式具有很多特征,它使我們對PostgreSQL的使用變得很容易。除了可以使用PostgreSQL指令SELECT, INSERT, UPDATE, CREATE TABLE等,psql還提供了許多内部指令,這些指令稱為元指令meta-command。PostgreSQL指令被發送到伺服器而元指令由psql自身處理。元指令都是由反斜線\開頭後跟一個或多個字母表示的指令有些指令還可以帶參數。表1.2給出了一些常用的元指令。與SQL指令不同元指令不需要使用分号結束直接按回車即可。

建立資料庫使用者:(注:下文中“postgres=#”表示目前postgres資料庫已登入,#表示超級使用者登入)

隻有資料庫管理者才能建立使用者。首先以超級使用者身份登入到PostgreSQL然後使用下面的SQL語句建立一個名為bookstore的資料庫使用者 postgres=# CREATE USER msf_user;postgres-# LOGIN;postgres-# CREATEDB;postgres-#  encrypted PASSWORD 'msf_password'; USER(此為回報結果)。要結束SQL語句應該輸入分号';'然後按回車。該語句中LOGIN表示該使用者是登入使用者CREATEDB 表示該使用者具有建立資料庫對象的權限PASSWORD指定使用者的密碼它使用單引号定界。使用“\du”元指令可以顯示使用者的狀态。

建立bookstore資料庫:

下面的SQL語句建立一個名為msfdb的資料庫該資料庫屬于msf_user使用者。 postgres=# CREATE DATABASE msfdb;postgres-# OWNER TO msf_user; OWNER msf_user短語指定資料庫的所有者owner對象的所有者具有在該對象上所有的操作權限。使用“\l+”元指令可以檢視資料庫是否建立成功。

建立資料庫對象:

超級使用者postgres可以為其他使用者建立資料庫對象但資料庫對象一般由資料庫所有者建立。如果要以使用者msf_user的身份登入到msfdb資料庫請先退出psql然後使用msf_user 使用者名連接配接到msfdb資料庫 C:\PostreSQL\8.3\bin> ./psql  –U msf_user –d msfdb 該指令以msf_user 使用者身份連接配接到msfdb資料庫。接下來需要輸入使用者密碼最後出現的提示符如下 msfdb=> 在該提示符下就可以使用SQL語句建立資料庫對象并且這些對象将存于msfdb資料庫的public模式中

繼續閱讀