科技知識動態:PostgreSQL數據庫(入門)

導讀跟大家講解下有關PostgreSQL數據庫(入門),相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說PostgreSQL數據庫(入門),小編也收

跟大家講解下有關PostgreSQL數據庫(入門),相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說PostgreSQL數據庫(入門),小編也收集到了有關PostgreSQL數據庫(入門)的相關資料,希望大家看到了會喜歡。

安裝 各個平臺都有豐富的安裝手冊,詳細可以在google里面搜索。這里是debian上安裝方式,ubuntu類: aptitude install postgresql # 這個是數據庫aptitude install pgadmin3 # 這個是GUI界面的管理工具 這里debian機器(172.16.70.175)是我筆記本,我是需要

安裝

各個平臺都有豐富的安裝手冊,詳細可以在google里面搜索。這里是debian上安裝方式,ubuntu類似:

aptitude install postgresql # 這個是數據庫aptitude install pgadmin3 # 這個是GUI界面的管理工具

這里debian機器(172.16.70.175)是我筆記本,我是需要一個pgadmin3,然后在實驗機器(fedora系統,172.16.70.254)上安裝了postgresql。

# rpm -qa|grep postgresqlpostgresql-libs-8.3.7-1.fc10.i386postgresql-8.3.7-1.fc10.i386postgresql-server-8.3.7-1.fc10.i386初始化配置

postgresql的用戶和系統用戶是分開的,我們需要初始化數據庫,設置數據庫的Loading用戶,配置postgresql的訪問權限。

設置密碼

如果是在debian/ubuntu,或者fedora這些系統上使用deb或rpm包安裝的,都會建立好postgres用戶。我們需要以這個用戶權限運行psql命令設置postgres用戶密碼:

# su postgres -c psql template1歡迎來到 psql 8.3.7,這是 PostgreSQL 互動式文字終端機。鍵入: \copyright 顯示發行條款 \h 顯示 SQL 命令的說明 \? 顯示 pgsql 命令的說明 \g 或者以分號(;)結尾以執行查詢 \q 退出postgres=# ALTER USER postgres with password 'abc123';ALTER ROLEpostgres=# \q

上面abc123就是我們設置的密碼。

創建數據庫su postgres -c createdb mydb配置遠程鏈接

1. 首先看看防火墻是否開啟,如果開啟需要允許5432端口的聯通。如不知怎樣配置防火墻,就關閉它。

2. 配置postgresql.conf文件,這個文件在數據庫pgsql目錄下的data目錄里。我在fedora上現在的地方是/var/lib/pgsql/data/postgresql.conf。

listen_addresses = '*' #把這句的注釋去掉,'*' 號表示監聽所有網絡地址的鏈接

3. 配置pg_hba.conf文件,通常和postgresql.conf文件在同一個目錄下:

host all all 172.16.70.175 255.255.252.0 md5# 我在最后加上了這一句# 我的筆記本IP是175, netmask是255.255.252.0# 這里和我同一網段的機器都以鏈接

4. 重啟postgresql服務

# /etc/init.d/postgresql restart停止 postgresql 服務: [確定]啟動 postgresql 服務: [確定]用戶管理創建用戶 createusercreateuser 是 SQL 命令 CREATE USER的封裝。命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主機名] [-p port] 用戶名參數說明:[-a]:允許創建其他其他用戶;[-d]:允許此用戶創建數據用戶,相當于創建一個超級用戶;[-A]:不允許此用戶創建庫庫;[-e]:將執行過程顯示到Shell上;[-P]:創建用戶時,同時設置密;[-D]:不允許此用戶創建數據碼;[-h 主機名]:為某個主機上的Postgres創建用戶;[-p port]:與-h參數一同使用,指定主機的端口。

1. 直接運行createruser命令

# createuserEnter name of role to add: jianleeShall the new role be a superuser? (y/n) nShall the new role be allowed to create databases? (y/n) yShall the new role be allowed to create more new roles? (y/n) ycreateuser: 無法聯接到數據庫 postgres: 致命錯誤: 用戶"root"Ident 認證失敗

上面命令運行出錯的原因是root用戶沒有權限訪問數據庫,我們使用前面設置密碼的postgres用戶運行命令:

# su postgresbash-3.2$ createuserEnter name of role to add: jianleeShall the new role be a superuser? (y/n) n # 如果選擇y,那么jianlee就是超級用戶Shall the new role be allowed to create databases? (y/n) y #如果上面沒有選擇y,這里才出現Shall the new role be allowed to create more new roles? (y/n) y #同上

2. 為指定的主機和端口創建用戶(就是遠程創建用戶)

# su postgrespostgres@jianlee:/root$ createuser -h 172.16.70.254 -p 5432 -D -A -e turbolinuxShall the new role be allowed to create more new roles? (y/n) y口令: # 輸入用戶postgres的口令CREATE ROLE turbolinux NOSUPERUSER NOCREATEDB CREATEROLE INHERIT LOGIN;

這個例子我在debian機器上先su到postgres用戶下執行createuser命令,-h和-p指定遠程主機的ip和端口,turbolinux是我想創建的用戶名。必須遠程(172.16.70.254)機器上的postgresql服務器啟動并且postgres用戶可以從debian(172.16.70.175)訪問情況下,才能執行正確。

3. 創建超級用戶

$ createuser -P -d -a -e turbo_rdEnter password for new role:再輸入一遍:CREATE ROLE turbo_rd PASSWORD 'md5259766bbac3b83cd9195cc0bea6ecec7' \SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;

參數看本節開始的createuser參數說明。

刪除用戶 dropuser$ dropuser --helpdropuser removes a PostgreSQL role.使用方法: dropuser [OPTION]... [ROLENAME]選項: -e, --echo 顯示發送到服務端的命令 -i, --interactive 刪除任何東西之前給予提示 -h, --host=HOSTNAM 數據庫服務器所在機器的主機名或套接字目錄 -p, --port=PORT 數據庫服務器端口號 -U, --username=USERNAME 聯接用戶 (不是要刪除的用戶名) -W, --password force password prompt --help 顯示此幫助信息, 然后退出 --version 輸出版本信息, 然后退出臭蟲報告至 .

1. 本地刪除

$ dropuser -i -e turbo_rdRole"turbo_rd"will be permanently removed.你確定嗎? (y/n) yDROP ROLE turbo_rd;

2. 遠程刪除

$ dropuser -p 5432 -h 172.16.70.254 -i -e turbolinuxRole"turbolinux"will be permanently removed.你確定嗎? (y/n) y口令:DROP ROLE turbolinux;

再次提醒:本次命令的運行者必須是能登錄254機器上數據庫的用戶。'口令'也是該用戶的數據庫登錄口令。

數據庫簡單管理創建數據庫 createdbcreatedb 中文

注意,運行這個命令的用戶需要是postgresql服務器用戶,有建庫權限。

刪除數據庫 dropdb訪問數據庫

1. 使用psql命令行

$ psql 中文歡迎來到 psql 8.3.7,這是 PostgreSQL 互動式文字終端機。鍵入: \copyright 顯示發行條款 \h 顯示 SQL 命令的說明 \? 顯示 pgsql 命令的說明 \g 或者以分號(;)結尾以執行查詢 \q 退出中文=#

2. 使用pgadmin3圖形界面管理工具

表操作

創建完數據庫之后,我們就可以在數據庫里面創建表了。我用的postgresql版本是8.3(debian lenny),表名、表中的所有字段的名字和注釋可以是UTF-8字符。但是用英文名字可以TAB鍵補全的地方多,不過這里我還是用中文表示。例子是參考postgresql的wiki上的。

創建新表

首先啟動psql命令行程序,然后創建新表:

root@jianlee:~# psql -U postgres -h localhost歡迎來到 psql 8.3.6,這是 PostgreSQL 互動式文字終端機。...postgres=# CREATE TABLE 天氣(城市 varchar(80), -- 這是城市名字最低氣溫 int, -- 一天當中最低氣溫最高氣溫 int, -- 一天當中最高氣溫降水量 real, -- 當天的降水量日期 date -- 日期);CREATE TABLE <== 這里顯示創建成功postgres=#

注意 : 最后一行date字符后面沒有',' 號!如果加上逗號會出現語法錯誤。

除了常用的 \q \? 等命令,psql里面的一條命令是以';' 結束的。在SQL里面可以隨意使用空白(空格、tab、換行符)。 — 是注釋的開始,到換行符結束。SQL對于大小寫不敏感,之用在雙引號字符串中才區分大小寫。

常見錯誤pgadmin3-"服務器工具未安裝"

參考:http://techxplorer.com/2008/01/16/installing-postgresql-server-instrumentation-under-ubuntu/

1. 安裝 postgresql-contrib 包

2. 運行命令:

psql -U postgres -d postgres -h localhost < \/usr/share/postgresql/8.3/contrib/adminpack.sql

來源:php中文網

免責聲明:本文由用戶上傳,如有侵權請聯系刪除!