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-commandPostgreSQL命令被髮送到服務器而元命令由psql自身處理。元命令都是由反斜線\開頭後跟一個或多個字母表示的命令有些命令還可以帶參數。表1.2給出了一些常用的元命令。SQL命令不同元命令不需要使用分號結束直接按回車即可。

創建數據庫用戶:(注:下文中“postgres=#”表示當前postgres數據庫已登錄,#表示超級用戶登錄)

只有數據庫管理員才能創建用戶。首先以超級用戶身份登錄到PostgreSQL然後使用下面的SQL語句創建一個名爲bookstore的數據庫用戶 postgres=# CREATE USER msf_userpostgres-# LOGINpostgres-# CREATEDBpostgres-#  encrypted PASSWORD 'msf_password' USER(此爲反饋結果)。要結束SQL語句應該輸入分號''然後按回車。該語句中LOGIN表示該用戶是登錄用戶CREATEDB 表示該用戶具有創建數據庫對象的權限PASSWORD指定用戶的口令它使用單引號定界。使用“\du”元命令可以顯示用戶的狀態。

創建bookstore數據庫:

下面的SQL語句創建一個名爲msfdb的數據庫該數據庫屬於msf_user用戶。 postgres=# CREATE DATABASE msfdbpostgres-# 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模式中


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