? 不明白,是什么平臺(tái)? 安裝 pgAdminIII試一試,很不錯(cuò)的工具。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比林甸網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式林甸網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋林甸地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
如果使用命令行
c:\program files\postgresql\9.1\bin psql --help
看一下說(shuō)明哦
你是直接執(zhí)行的psql.exe吧??那么需要加入數(shù)據(jù)庫(kù)位置等一些參數(shù)的。Windows系統(tǒng)下,PostgreSQL有提供一個(gè)命令行腳本runsql.bat,?在安裝目錄的scripts文件夾中,一般是執(zhí)行這個(gè)腳本來(lái)開(kāi)啟psql的,其執(zhí)行畫面如下:
一、去官方網(wǎng)站下載PostgreSQL當(dāng)前最新版(當(dāng)前最新版本為9.3.2)
如上圖,下載紅框內(nèi)的Source文件。
二、除此之外還需準(zhǔn)備Perl(當(dāng)前最新為5.18.1.1800)及Flex、Bison安裝包
之所以用Perl是因?yàn)槲覀兒竺姘惭bPG主要采用的就是Perl來(lái)安裝,而Flex、Bison則是PG中對(duì)命令或查詢語(yǔ)句進(jìn)行詞法、語(yǔ)法解析所用到的,Perl的安裝教程請(qǐng)戳這里^_^(安裝到C盤也不要緊,我們可以添加系統(tǒng)環(huán)境變量解決),F(xiàn)lex、Bison下載后不用安裝,至于有童鞋想知道為什么PG需要這兩個(gè)東西請(qǐng)戳這里^_^。我們現(xiàn)在有Flex、Bison的包,有PG的Source Code及Perl的安裝包(要安裝),如下圖所示:
準(zhǔn)備好的程序
Flex_Bison文件夾中的程序
將PG及flex_bison放置于同一文件夾下即可。
三、開(kāi)始安裝PostgreSQL
首先要修改一個(gè)小地方,打開(kāi)PG文件夾,找到MKVcbuild.pm文件(如下圖所示),用文本編輯器打開(kāi)(如Notepad++),修改其中my $vsVersion = DetermineVisualStudioVersion()該行,變?yōu)?/p>
my $vsVersion = “9.0.0”,至于為什么這么改,是因?yàn)椴贿@么改,我的VS2008就無(wú)法打開(kāi),并且項(xiàng)目也無(wú)法編譯成功,這個(gè)地方我不敢保證是不是特例還是共性,有待驗(yàn)證。具體如下圖所示:
接下來(lái)如果Perl是安裝到了C盤,則在系統(tǒng)環(huán)境變量中添加Perl的C盤路徑位置,比如:
打開(kāi)你的命令編輯器,因?yàn)槲业碾娔X是64位的,這里我打開(kāi)的是VS自帶的64位命令編輯器,CMD也OK。
到MSVC目錄下,輸入perl build.pl DEBUID
這樣就開(kāi)始編譯了,全過(guò)程大概需要5分鐘吧,期間可能會(huì)有若干warning,但是無(wú)所謂啦,只有沒(méi)有error就行,(我自己安裝了兩遍,有些許warning,但是絕對(duì)沒(méi)有error出現(xiàn))
編譯結(jié)束后,就可以打開(kāi)你的工程了,如下圖所示
接著在命令編輯器中繼續(xù)輸入perl install.pl (此處為bin文件夾路徑,自己指定),例如:
perl install.pl C:/bin,這樣就可以將相關(guān)執(zhí)行文件拷貝到你的bin目錄下,將來(lái)執(zhí)行的時(shí)候就可以在bin目錄下執(zhí)行了
執(zhí)行完后,恭喜,PG就安裝完成了,下面你可以簡(jiǎn)單的登陸你的PG來(lái)進(jìn)行調(diào)試了
四、簡(jiǎn)單的調(diào)試
首先初始化系統(tǒng)數(shù)據(jù)目錄(包括系統(tǒng)表等元數(shù)據(jù))輸入initdb.exe DB(數(shù)據(jù)目錄名字,可自己指定)
其次啟動(dòng)服務(wù)器,輸入postgreys.exe -D DB (注意-D中的D一定要大寫)
再次,啟動(dòng)客戶端(另打開(kāi)一個(gè)窗口),輸入psql.exe DB
最后,自己可以create
database,create table,往table中insert
into些數(shù)據(jù),最后可以select數(shù)據(jù)等等,就可以自由操縱了,比如下例中,執(zhí)行一個(gè)Select語(yǔ)句,通過(guò)VS2008附加到進(jìn)程中去跟代碼,具體研究PG的細(xì)節(jié)實(shí)現(xiàn)。
五、結(jié)尾
可能你安裝的時(shí)候選擇了默認(rèn)用系統(tǒng)賬戶登錄,所以不需要密碼,望采納
1、關(guān)閉數(shù)據(jù)庫(kù)服務(wù)
2、進(jìn)入數(shù)據(jù)庫(kù)的工作空間目錄 (如果是建庫(kù)是沒(méi)有另外指定,應(yīng)該就是postgresql安裝目錄下的 data 目錄)
3、編輯修改文件 pg_hba.conf, 把連接權(quán)限設(shè)置的 md5 加密方式 改成 trust以我的為例,原本設(shè)置是
1
2
3
4
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
修改為
1
2
3
4
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
4、從新啟動(dòng)postgresql數(shù)據(jù)庫(kù)服務(wù)
5、可以不用密碼就能用postgres用戶登陸,然后執(zhí)行修改用戶密碼的操作
6、修改 pg_hba.conf 文件,改回到 md5 方式,再重啟數(shù)據(jù)庫(kù)服務(wù)就ok了
7、再執(zhí)行建用戶,和建庫(kù)操作
createuser.exe -s -P foo -U postgres
createdb.exe --encoding=UTF8 --owner=foo --template=template_postgis -Ufoo
參數(shù):
--encoding=UTF8 設(shè)置數(shù)據(jù)庫(kù)的字符集
--owner=foo 設(shè)置數(shù)據(jù)庫(kù)的所有者
--tmplate=template_postgis 設(shè)置建庫(kù)的模板,該模板支持空間數(shù)據(jù)操作
--Ufoo 用foo用戶身份建立數(shù)據(jù)庫(kù)
如若滿意,請(qǐng)點(diǎn)擊右側(cè)【采納答案】,如若還有問(wèn)題,請(qǐng)點(diǎn)擊【追問(wèn)】
(1)用戶實(shí)用程序:
createdb 創(chuàng)建一個(gè)新的PostgreSQL的數(shù)據(jù)庫(kù)(和SQL語(yǔ)句:CREATE DATABASE 相同)
createuser 創(chuàng)建一個(gè)新的PostgreSQL的用戶(和SQL語(yǔ)句:CREATE USER 相同)
dropdb 刪除數(shù)據(jù)庫(kù)
dropuser 刪除用戶
pg_dump 將PostgreSQL數(shù)據(jù)庫(kù)導(dǎo)出到一個(gè)腳本文件
pg_dumpall 將所有的PostgreSQL數(shù)據(jù)庫(kù)導(dǎo)出到一個(gè)腳本文件
pg_restore 從一個(gè)由pg_dump或pg_dumpall程序?qū)С龅哪_本文件中恢復(fù)PostgreSQL數(shù)據(jù)庫(kù)
psql 一個(gè)基于命令行的PostgreSQL交互式客戶端程序
vacuumdb 清理和分析一個(gè)PostgreSQL數(shù)據(jù)庫(kù),它是客戶端程序psql環(huán)境下SQL語(yǔ)句VACUUM的shell腳本封裝,二者功能完全相同
(2)系統(tǒng)實(shí)用程序
initdb 創(chuàng)建一個(gè)用于存儲(chǔ)數(shù)據(jù)庫(kù)的PostgreSQL數(shù)據(jù)目錄,并創(chuàng)建預(yù)定義的模板數(shù)據(jù)庫(kù)template0和template1,生成共享目錄表 catalog;此程序通常只在安裝PostgreSQL時(shí)運(yùn)行一次
initlocation 創(chuàng)建一個(gè)輔助的PostgreSQL數(shù)據(jù)庫(kù)存儲(chǔ)區(qū)域
ipcclean 從停止的PostgreSQL服務(wù)器中清除共享內(nèi)在和孤立信號(hào)標(biāo)志
pg_ctl 啟動(dòng)、停止、重啟PostgreSQL服務(wù)(比如:pg_ctl start 啟動(dòng)PostgreSQL服務(wù),它和service postgresql start相同)
pg_controldata 顯示PostgreSQL服務(wù)的內(nèi)部控制信息
postgres PostgreSQL單用戶模式的數(shù)據(jù)庫(kù)服務(wù)
postmaster PostgreSQL多用戶模式的數(shù)據(jù)庫(kù)服務(wù)
4.這里面最重要的是psql這個(gè)客戶端程序最為重要。啟用客戶端程序psql的方法是:
切換到PostgreSQL預(yù)定義的數(shù)據(jù)庫(kù)超級(jí)用戶postgres,啟用客戶端程序psql,并連接到自己想要的數(shù)據(jù)庫(kù),比如說(shuō):
psql template1
出現(xiàn)以下界面,說(shuō)明已經(jīng)進(jìn)入到想要的數(shù)據(jù)庫(kù),可以進(jìn)行想要的操作了。
template1=#
5.在數(shù)據(jù)庫(kù)中的一些命令:
template1=# \l 查看系統(tǒng)中現(xiàn)存的數(shù)據(jù)庫(kù)
template1=# \q 退出客戶端程序psql
template1=# \c 從一個(gè)數(shù)據(jù)庫(kù)中轉(zhuǎn)到另一個(gè)數(shù)據(jù)庫(kù)中,如template1=# \c sales 從template1轉(zhuǎn)到sales
template1=# \dt 查看表
template1=# \d 查看表結(jié)構(gòu)
template1=# \di 查看索引
[基本數(shù)據(jù)庫(kù)操作]========================
*創(chuàng)建數(shù)據(jù)庫(kù):
create database [數(shù)據(jù)庫(kù)名];
*查看數(shù)據(jù)庫(kù)列表:
\d
*刪除數(shù)據(jù)庫(kù):
drop database [數(shù)據(jù)庫(kù)名];
創(chuàng)建表:
create table ([字段名1] [類型1] references 關(guān)聯(lián)表名(關(guān)聯(lián)的字段名);,[字段名2] [類型2],......,primary key (字段名m,字段名n,...););
*查看表名列表:
\d
*查看某個(gè)表的狀況:
\d [表名]
*重命名一個(gè)表:
alter table [表名A] rename to [表名B];
*刪除一個(gè)表:
drop table [表名];
========================================
[表內(nèi)基本操作]==========================
*在已有的表里添加字段:
alter table [表名] add column [字段名] [類型];
*刪除表中的字段:
alter table [表名] drop column [字段名];
*重命名一個(gè)字段:
alter table [表名] rename column [字段名A] to [字段名B];
*給一個(gè)字段設(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 [表名];--刪空整個(gè)表
6.要注意隨時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行清理、收回磁盤空間并更新統(tǒng)計(jì)信息,使用下面的命令就搞定!
vaccumdb -d sales -z
-a 對(duì)所有的數(shù)據(jù)庫(kù)操作
-z 保證不斷地刪除失效的行,節(jié)約磁盤空間,將統(tǒng)計(jì)信息更新為最近的狀態(tài)
7.PostgreSQL用戶認(rèn)證
PostgreSQL數(shù)據(jù)目錄中的pg_hba.conf的作用就是用戶認(rèn)證,可以在/var/lib/pgsql/data中找到。
有以下幾個(gè)例子可以看看:
(1)允許在本機(jī)上的任何身份連接任何數(shù)據(jù)庫(kù)
TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
local all all trust(無(wú)條件進(jìn)行連接)
(2)允許IP地址為192.168.1.x的任何主機(jī)與數(shù)據(jù)庫(kù)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ù)庫(kù)用戶進(jìn)行連接)
8.看了那么多,來(lái)一個(gè)完整的創(chuàng)建PostgreSQL數(shù)據(jù)庫(kù)用戶的示例吧
(1)進(jìn)入PostgreSQL高級(jí)用戶
(2)啟用客戶端程序,并進(jìn)入template1數(shù)據(jù)庫(kù)
psql template1
(3)創(chuàng)建用戶
template1=# CREATE USER hellen WITH ENCRYPED PASSWORD'zhenzhen'
(4)因?yàn)樵O(shè)置了密碼,所以要編輯pg_hba.conf,使用戶和配置文件同步。
在原有記錄上面添加md5
local all hellen md5
(4)使用新用戶登錄數(shù)據(jù)庫(kù)
template1=# \q
psql -U hellen -d template1
PS:在一個(gè)數(shù)據(jù)庫(kù)中如果要切換用戶,要使用如下命令:
template1=# \!psql -U tk -d template1
9.設(shè)定用戶特定的權(quán)限
還是要用例子來(lái)說(shuō)明:
創(chuàng)建一個(gè)用戶組:
sales=# CREATE GROUP sale;
添加幾個(gè)用戶進(jìn)入該組
sales=# ALTER GROUP sale ADD USER sale1,sale2,sale3;
授予用戶級(jí)sale針對(duì)表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ù)庫(kù)
可以使用pg_dump和pg_dumpall來(lái)完成。比如備份sales數(shù)據(jù)庫(kù):
pg_dump sales/home/tk/pgsql/backup/1.bak