不考慮系統(tǒng)版本、安裝的系統(tǒng)是不是最小化安裝、pgsql版本等問題,那么正常應(yīng)該是下面的安裝方法就可以成功的,如果想可以遠(yuǎn)程連接,則要在防火墻里開放端口5432。
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)怒江州,十余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
三、安裝PostgreSQL
# cd /usr/local/src/
# tar zxf postgresql-9.2.4.tar.gz
# cd postgresql-9.2.4
# ./configure --prefix=/usr/local/pgsql
# make
# make install
//和mysql一樣建立組和用戶
# groupadd postgres
# useradd -g postgres postgres
分頁顯示文件內(nèi)容
命令:pg (page)
格式:pg [option] filename
功能:分頁顯示指定文件的內(nèi)容。在顯示一頁文件時,最后一行將顯示等待用
戶輸入指令??奢斎氲闹噶钣腥缦逻x項。
選項:h 顯示pg命令中可使用的幫助(help)命令。
q 退出pg命令。
[return] 顯示下一頁正文。
1 顯示正文的下一行
[Space] 顯示下一頁
d/[Ctrl-D] 將屏幕滾動半屏。
n 顯示pg命令行中說明的下一個文件。
p 顯示pg命令行中說明的前一個文件。
% 顯示正文當(dāng)前頁的前面一頁。
/pattern 在文件中向前搜索指定的字符模式。
?pattern 在文件中向后搜索指定的字符模式。
注釋:當(dāng)pg命令顯示到文件的末尾時,顯示一個文件結(jié)束信息EOF(end of file)。
例如:% pg filename
(1)用戶實用程序:
createdb 創(chuàng)建一個新的PostgreSQL的數(shù)據(jù)庫(和SQL語句:CREATE DATABASE 相同)
createuser 創(chuàng)建一個新的PostgreSQL的用戶(和SQL語句:CREATE USER 相同)
dropdb 刪除數(shù)據(jù)庫
dropuser 刪除用戶
pg_dump 將PostgreSQL數(shù)據(jù)庫導(dǎo)出到一個腳本文件
pg_dumpall 將所有的PostgreSQL數(shù)據(jù)庫導(dǎo)出到一個腳本文件
pg_restore 從一個由pg_dump或pg_dumpall程序?qū)С龅哪_本文件中恢復(fù)PostgreSQL數(shù)據(jù)庫
psql 一個基于命令行的PostgreSQL交互式客戶端程序
vacuumdb 清理和分析一個PostgreSQL數(shù)據(jù)庫,它是客戶端程序psql環(huán)境下SQL語句VACUUM的shell腳本封裝,二者功能完全相同
(2)系統(tǒng)實用程序
initdb 創(chuàng)建一個用于存儲數(shù)據(jù)庫的PostgreSQL數(shù)據(jù)目錄,并創(chuàng)建預(yù)定義的模板數(shù)據(jù)庫template0和template1,生成共享目錄表 catalog;此程序通常只在安裝PostgreSQL時運行一次
initlocation 創(chuàng)建一個輔助的PostgreSQL數(shù)據(jù)庫存儲區(qū)域
ipcclean 從停止的PostgreSQL服務(wù)器中清除共享內(nèi)在和孤立信號標(biāo)志
pg_ctl 啟動、停止、重啟PostgreSQL服務(wù)(比如:pg_ctl start 啟動PostgreSQL服務(wù),它和service postgresql start相同)
pg_controldata 顯示PostgreSQL服務(wù)的內(nèi)部控制信息
postgres PostgreSQL單用戶模式的數(shù)據(jù)庫服務(wù)
postmaster PostgreSQL多用戶模式的數(shù)據(jù)庫服務(wù)
4.這里面最重要的是psql這個客戶端程序最為重要。啟用客戶端程序psql的方法是:
切換到PostgreSQL預(yù)定義的數(shù)據(jù)庫超級用戶postgres,啟用客戶端程序psql,并連接到自己想要的數(shù)據(jù)庫,比如說:
psql template1
出現(xiàn)以下界面,說明已經(jīng)進入到想要的數(shù)據(jù)庫,可以進行想要的操作了。
template1=#
5.在數(shù)據(jù)庫中的一些命令:
template1=# \l 查看系統(tǒng)中現(xiàn)存的數(shù)據(jù)庫
template1=# \q 退出客戶端程序psql
template1=# \c 從一個數(shù)據(jù)庫中轉(zhuǎn)到另一個數(shù)據(jù)庫中,如template1=# \c sales 從template1轉(zhuǎn)到sales
template1=# \dt 查看表
template1=# \d 查看表結(jié)構(gòu)
template1=# \di 查看索引
[基本數(shù)據(jù)庫操作]========================
*創(chuàng)建數(shù)據(jù)庫:
create database [數(shù)據(jù)庫名];
*查看數(shù)據(jù)庫列表:
\d
*刪除數(shù)據(jù)庫:
drop database [數(shù)據(jù)庫名];
創(chuàng)建表:
create table ([字段名1] [類型1] references 關(guān)聯(lián)表名(關(guān)聯(lián)的字段名);,[字段名2] [類型2],......,primary key (字段名m,字段名n,...););
*查看表名列表:
\d
*查看某個表的狀況:
\d [表名]
*重命名一個表:
alter table [表名A] rename to [表名B];
*刪除一個表:
drop table [表名];
========================================
[表內(nèi)基本操作]==========================
*在已有的表里添加字段:
alter table [表名] add column [字段名] [類型];
*刪除表中的字段:
alter table [表名] drop column [字段名];
*重命名一個字段:
alter table [表名] rename column [字段名A] to [字段名B];
*給一個字段設(shè)置缺省值:
alter table [表名] alter column [字段名] set default [新的默認(rèn)值];
*去除缺省值:
alter table [表名] alter column [字段名] drop default;
在表中插入數(shù)據(jù):
insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);
修改表中的某行某列的數(shù)據(jù):
update [表名] set [目標(biāo)字段名]=[目標(biāo)值] where [該行特征];
刪除表中某行數(shù)據(jù):
delete from [表名] where [該行特征];
delete from [表名];--刪空整個表
6.要注意隨時對數(shù)據(jù)庫進行清理、收回磁盤空間并更新統(tǒng)計信息,使用下面的命令就搞定!
vaccumdb -d sales -z
-a 對所有的數(shù)據(jù)庫操作
-z 保證不斷地刪除失效的行,節(jié)約磁盤空間,將統(tǒng)計信息更新為最近的狀態(tài)
7.PostgreSQL用戶認(rèn)證
PostgreSQL數(shù)據(jù)目錄中的pg_hba.conf的作用就是用戶認(rèn)證,可以在/var/lib/pgsql/data中找到。
有以下幾個例子可以看看:
(1)允許在本機上的任何身份連接任何數(shù)據(jù)庫
TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
local all all trust(無條件進行連接)
(2)允許IP地址為192.168.1.x的任何主機與數(shù)據(jù)庫sales連接
TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host sales all 192.168.1.0 255.255.255.0 ident sameuser(表明任何操作系統(tǒng)用戶都能夠以同名數(shù)據(jù)庫用戶進行連接)
8.看了那么多,來一個完整的創(chuàng)建PostgreSQL數(shù)據(jù)庫用戶的示例吧
(1)進入PostgreSQL高級用戶
(2)啟用客戶端程序,并進入template1數(shù)據(jù)庫
psql template1
(3)創(chuàng)建用戶
template1=# CREATE USER hellen WITH ENCRYPED PASSWORD'zhenzhen'
(4)因為設(shè)置了密碼,所以要編輯pg_hba.conf,使用戶和配置文件同步。
在原有記錄上面添加md5
local all hellen md5
(4)使用新用戶登錄數(shù)據(jù)庫
template1=# \q
psql -U hellen -d template1
PS:在一個數(shù)據(jù)庫中如果要切換用戶,要使用如下命令:
template1=# \!psql -U tk -d template1
9.設(shè)定用戶特定的權(quán)限
還是要用例子來說明:
創(chuàng)建一個用戶組:
sales=# CREATE GROUP sale;
添加幾個用戶進入該組
sales=# ALTER GROUP sale ADD USER sale1,sale2,sale3;
授予用戶級sale針對表employee和products的SELECT權(quán)限
sales=# GRANT SELECT ON employee,products TO GROUP sale;
在sale中將用戶user2刪除
sales=# ALTER GROP sale DROP USER sale2;
10.備份數(shù)據(jù)庫
可以使用pg_dump和pg_dumpall來完成。比如備份sales數(shù)據(jù)庫:
pg_dump sales/home/tk/pgsql/backup/1.bak