1、關(guān)閉數(shù)據(jù)庫(kù)服務(wù)
創(chuàng)新互聯(lián)建站專注于網(wǎng)站建設(shè)|成都網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋成都餐廳設(shè)計(jì)等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身定制品質(zhì)網(wǎng)站。
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ù)
方法一:
一般 PostgreSQL 建庫(kù)都是用的 UTF8 字符集, 在 UTF8 字符集情況下如果中文不能
正常顯示,可以設(shè)置客戶端字符集,修改成 " GBK " ,命令如下:
--修改客戶端字符集
postgres=# show client_encoding;
client_encoding
-----------------
UTF8
(1 row)
postgres=# set client_encoding='GBK';
SET
--copy 導(dǎo)出數(shù)據(jù)到 GBK 編碼類型的 csv 文件
skytf=# copy skytf.test_2 to '/home/postgres/script/tf/skytf.test_2.csv' with csv header;
COPY 1000000
備注:此時(shí)通過(guò) sftp 將 csv 文件傳到 windows 本機(jī),就不會(huì)出現(xiàn)亂碼了。
方法二: 使用 iconv 工具更改文件編碼
iconv 是 linux 命令,用來(lái)轉(zhuǎn)換文件的編碼的 ,手冊(cè)解釋如下 "Convert encoding of
given files from one encoding to another",我們可以使用 iconv 命令轉(zhuǎn)換文件的編碼,如果 utf8
編碼的文件中文顯示為亂碼,可以使用 iconv 命令將 UTF8 格式文件轉(zhuǎn)換成 gb18030,參考步驟:
--導(dǎo)出數(shù)據(jù)到 utf8 編碼類型文件。
skytf=# set client_encoding='UTF8';
SET
skytf=# show client_encoding;
client_encoding
-----------------
UTF8
(1 row)
skytf=# copy skytf.test_2 to '/home/postgres/script/tf/skytf.test_2.csv' with csv header;
COPY 1000000
--將文件編碼由 utf8 轉(zhuǎn)換成 gb18030
iconv -f utf-8 -t gb18030 skytf.test_2.csv -o skytf.test_2_gbk.csv
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ù)
我用ubuntu,所以不大懂yum具體怎么操作,但我想應(yīng)該與apt的功能差不多。首先,postgresql是很有名的數(shù)據(jù)庫(kù),你用不著指定具體的版本。你可以直接用yum去查詢?cè)椿蛘邘?kù)里是否有這個(gè)軟件(具體操作請(qǐng)參考yum的文檔,我這邊是apt-cachesearchpostgresql)當(dāng)然,如果你用新立得的話,它的編輯菜單里有個(gè)按任務(wù)安裝軟件,里面有postgresql數(shù)據(jù)庫(kù)的選項(xiàng)。安裝postgresql之后難免要配置它。你也許會(huì)很奇怪,安裝的過(guò)程中沒(méi)有提示你添加用戶或者添加數(shù)據(jù)庫(kù)密碼(在ubuntu上就是這樣,不知道紅帽是什么樣的情況)。其實(shí),隨著數(shù)據(jù)庫(kù)的安裝,已經(jīng)添加了用戶postgres,你要做的是先登錄到這個(gè)用戶的shell下,再添加你需要的實(shí)用用戶。按照我的操作,是這樣的,先passwdpostgres改掉本地用戶postgres的密碼然后用這個(gè)postgres登錄到系統(tǒng)(可以Ctrl+Alt+F1-F5來(lái)切換虛擬控制臺(tái))。createuser本地帳戶##如果你本地用戶名是joe,那么就createuserjoe會(huì)提示你是否創(chuàng)建超級(jí)用戶。一般來(lái)說(shuō)都會(huì)建一個(gè)超級(jí)用戶來(lái)管理,當(dāng)然你也可以選擇建立一個(gè)普通的用戶?,F(xiàn)在基本上就配置完畢了,回到你剛才的用戶登錄,例如joe,可以用psql來(lái)登錄到postgresql了。如果你需要編程登錄數(shù)據(jù)庫(kù),那么你得先建庫(kù),再建role,然后通過(guò)role登錄。打個(gè)比方,用php登錄到postgresql,使用PEAR的MDB2軟件包登錄,你可以這樣createdb##假設(shè)你為當(dāng)前用戶(本地帳戶)建立了一個(gè)超級(jí)數(shù)據(jù)庫(kù)用戶(角色,role),該命令會(huì)建立一個(gè)與當(dāng)前用戶同名的數(shù)據(jù)庫(kù),可以指定數(shù)據(jù)庫(kù)名來(lái)建別的庫(kù)。psql##以超級(jí)用戶登錄到數(shù)據(jù)庫(kù)(與本地用戶同名)alterrole本地用戶名password'newpassword';##為本地?cái)?shù)據(jù)庫(kù)用戶(角色)建立一個(gè)密碼,這個(gè)密碼將來(lái)用于你編程登錄數(shù)據(jù)庫(kù)現(xiàn)在可以用本地用戶作為角色通過(guò)php編程登錄數(shù)據(jù)庫(kù)了,因?yàn)槊艽a和用戶名都是已知的了。當(dāng)然,用超級(jí)用戶登錄數(shù)據(jù)庫(kù)有安全問(wèn)題,如果你建立一個(gè)普通角色的話,需要給普通用戶賦權(quán),這個(gè)問(wèn)題需要你參考postgresql的用戶手冊(cè),百度文庫(kù)里有英文9.1的用戶手冊(cè),查詢權(quán)限一節(jié)即可解決此問(wèn)題?;蛘?,可以使用pgadmin這一圖形界面來(lái)解決權(quán)限等問(wèn)題。
PostgreSQL的現(xiàn)有版本在不增加可供購(gòu)買的商業(yè)應(yīng)用包時(shí),并不降低其使用價(jià)值,反而由于它的plpgsql包和C及ODBC接口的存在,使數(shù)據(jù)庫(kù)系統(tǒng)在二次開(kāi)發(fā)的過(guò)程中,可最大程度地保護(hù)已經(jīng)投入的程序資產(chǎn)。 宿主平臺(tái)在Linux和類UNIX平臺(tái)上,PostgreSQL8.2.4 比較適合 RedHat 的 AdvanceServer4和 Kylin2.1,這兩個(gè)平臺(tái)對(duì)于這一版本的PostgreSQL有最為接近的升級(jí)兼容性,兩者的表示層都是BSD血統(tǒng),使用的C庫(kù)都在一個(gè)版本層中,系統(tǒng)的主要部分都很成熟,移植的問(wèn)題基本上不存在。 對(duì)于Windows平臺(tái),目前典型的是2K和2K3,以及XP。在2K平臺(tái)上兼容性極好,運(yùn)行穩(wěn)定,并且在數(shù)據(jù)庫(kù)內(nèi)部的操作與其它平臺(tái)上的版本完全一致,這給數(shù)據(jù)庫(kù)應(yīng)用在不同平臺(tái)之間的移植打下了良好的基礎(chǔ)。 Windows平臺(tái)安裝實(shí)踐所選擇的平臺(tái)是Windows2K。安裝過(guò)程和一般應(yīng)用程序的安裝差不多,根據(jù)自己的需要指定安裝選項(xiàng),沒(méi)有過(guò)多的要求。安裝完畢并啟動(dòng)后,做以下幾件事: (1)寫一個(gè)文本文件,并命名為“pgpass.conf”,內(nèi)容為: localhost:5432:postgres:postgres:qazwsxedc 其中“l(fā)ocalhost”表示使用了UNIX域的Socket方式,這是為安全而考慮的。 第二個(gè)字段是端口,第三個(gè)字段是數(shù)據(jù)庫(kù)名,第四個(gè)字段是帳戶名,第五個(gè) 字段是口令??梢杂卸嘈?,每行代表一個(gè)數(shù)據(jù)庫(kù)帳戶。 (2)上述文件放到以下路徑: C:\Documents and Settings\postgresql\Application Data\postgresql 如果是不同的帳戶,例如我使用的帳戶是“campus”,那么路徑為: C:\Documents and Settings\campus\Application Data\postgresql (3)打開(kāi)ODBC數(shù)據(jù)源 -- 控制面板 -- 管理工具 -- ODBC數(shù)據(jù)源,在選項(xiàng)卡“用戶DSN”中選擇“添加”并打開(kāi),在列表中選擇“PostgreSQL Unicode”并按“完成”。如果需要,也可以在選項(xiàng)卡“系統(tǒng)DSN”中按同一步驟添加。 (4)在列表中選擇“PosgreSQL30W”,打開(kāi)“配置”窗口,依次填入必要的信 息。在我的例子中,Database是“center”,Server是“Localhost”, Port是5432,UserName和Password根據(jù)自己的情況填寫。 (5)按“Test”按鈕,對(duì)話窗出現(xiàn),顯示“Connect successful”,然后按“Save”保存并退出。 (6)在VB、VC或是ASP中,按通常的方法選擇數(shù)據(jù)源,這就完成了PostgreSQL在Windows系統(tǒng)上的全部安裝過(guò)程。 我的應(yīng)用數(shù)據(jù)庫(kù)安裝方法采用以文本文件的形式加上批處理過(guò)程來(lái)進(jìn)行。關(guān)于建庫(kù)的一段語(yǔ)句如下: select 'Create table space ...' ; CREATE TABLESPACE campus_center -- 創(chuàng)建表空間 OWNER campus LOCATION 'E:/cps/campus_center' ; select 'Create database Center ... ...' ; create database center -- 創(chuàng)建數(shù)據(jù)庫(kù) with template = template0 owner = campus tablespace = campus_center encoding = 'euc_cn' ; select 'Create Procedural Language PL/pgSQL ...' ; CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' -- 注冊(cè)使用的解釋器 HANDLER plpgsql_call_handler VALIDATOR plpgsql_validator其中,在建庫(kù)時(shí)一定要指定參數(shù)“encoding = 'euc_cn'”,否則在Windows平臺(tái)上會(huì)出現(xiàn)亂碼。 批處理文件的內(nèi)容大致如下: @echo off mem initdb.bat mkdir E:\cps\campus_center "D:\Program Files\PostgreSQL\8.2\bin\psql.exe" -h localhost -p 5432 postgres "postgres" -f .\00_wincenter_make.sql .\initwin.log 2 .\initwin2.log ... ...命令“mkdir”建立一個(gè)操作系統(tǒng)目錄,作為將要建立的應(yīng)用所使用的表空間。注意第二條命令“psql.exe”使用了全路徑,后面的語(yǔ)句都是在一行上,不可中斷。命令使用文件“00_wincenter_make.sql”來(lái)創(chuàng)建數(shù)據(jù)庫(kù),產(chǎn)生的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤分別向文件“initwin.log”和“initwin2.log”中寫入,可用于建庫(kù)過(guò)程中的診斷。后續(xù)語(yǔ)句可仿此辦理,但輸出換向符應(yīng)由“”改為“”,以追加信息到診斷日志尾部。 通常在診斷日志文件“initwin2.log”中找不到字符串“ERROR”時(shí),可以認(rèn)為應(yīng)用數(shù)據(jù)庫(kù)已經(jīng)成功安裝并運(yùn)行了。 注意事項(xiàng):如果在VB下使用PostgreSQL8.2.4,那么VB的版本要低于VS2005,否則接口不兼容。這也是所謂“.net”戰(zhàn)略的排他性。
文章題目:包含postgresql建庫(kù)的詞條
網(wǎng)頁(yè)網(wǎng)址:http://www.rwnh.cn/article8/dscddip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)、服務(wù)器托管、網(wǎng)站收錄、全網(wǎng)營(yíng)銷推廣、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)