顯示具有 Postgresql 標籤的文章。 顯示所有文章
顯示具有 Postgresql 標籤的文章。 顯示所有文章

2015年5月18日 星期一

[Postgresql] 初始化Postgresql -Linux

初始化DB

/usr/pgsql-9.3/bin/initdb -D /usr/pgsql-9.3/data/

(data資料夾不要手動去建,它自己會建)

幫Postgresql設定密碼(剛裝好是沒有密碼的)


su postgres -c psql postgres

ALTER USER postgres WITH PASSWORD 'your password'

2015年4月9日 星期四

[Postgresql] 禁止帳號連入

禁止abc123這組號密連入

create role abc123 with nosuperuser inherit nocreaterole createdb login;

但是這樣只是防止末來再被連進來而以,已連入的帳戶無法立即"踢出"

用以下方式可以把目前已被禁止的帳戶,立即請出去。

select pg_terminate_backend(procpid) from pg_stat_activity a join pg_roles r on a.usename=r.rolname and not rolcanlogin

資料來源

http://isricky1221.pixnet.net/blog/post/16449201-%E6%9A%AB%E6%99%82%E7%A6%81%E6%AD%A2%E4%BD%BF%E7%94%A8%E8%80%85%E7%99%BB%E5%85%A5

2015年4月3日 星期五

[Postgresql]把西元年轉成民國年輸出

有時候要輸出民國年,可以直接用SQL來做轉換,假設我們有一個資料表如下:

















此時可以透過以下SQL去做轉換

select id ,time,replace(time::text,to_char(time, 'YYYY'),(to_char(time, 'YYYY')::integer-1911)::text)  TW  from "Demo" ;

出來的tw欄位即為轉換民國年後的時間









其實只是利用取出年份-》轉成integer -1911 就醬子。

2015年3月31日 星期二

[Postgresql] An operation was attempted on something that is not a socket 修復

Postgresql 有時候會突然無法啟動服務,檢視Log檔會出現,

An operation was attempted on something that is not a socket










目前觀察這個情況較容易發生在XP出現。

微軟的說明

http://support.microsoft.com/en-us/kb/817571

This issue may occur if you have a third-party product installed that uses Windows sockets and also uses the ipconfig, release, and renew commands. The Windows sockets registry subkeys may be corrupted.

這個問題也許是因為你有安裝第三方(非微軟)的軟體,它使用到Windows Socket 以及用到了ipconfig  release (釋放IP)以及 ipconfig renew (要求再次分配IP) 指令, Windows Socket 註冊的subkey 也許並不正確。

您可嘗試用上述URL下方的解法,或者嘗試本篇提供的懶人方法;

MicrosoftFixit50203.msi 


這個msi的說明
https://support.microsoft.com/en-us/kb/811259/zh-cn


基本上它是一個修復Winsock2 損壞  的工具,微軟提供的,用過幾次都可以正常修復。

操作步驟如下:


點二下開啟程式後會看到這個畫面,勾選『我同意』後按『下一步』




 等待處理中






處理完畢,點下『關閉』
點下『是』重開機一下就好了。




2015年3月20日 星期五

[Postgresql] Visual Studio 以ODBC 資料連接Postgresql

環境說明

A.Win7 專業版 64bit

B. Vistual Studio 2012

C. Postgrsql 9.1.3 x86版本


1.開啟Applaction Stack Builder




























2.選擇Postgresql 伺服器


























3.安裝ODBC驅動


4.點選Next


5.下載ODBC驅動中


























6.點選Next開始安裝


























7.點選Next

























8.點選Next

























9.點選Next

























10.安裝中,稍候一下。

























11.安裝完成,點選Finish。

























12.點選Finish。

13.來到C:\Windows\SysWOW64 下找到odbcad32.exe ,點二下。


14.點選新增






















15.點選PostgreSQL ODBC Driver(UNICODE)


















16.設定相關資料後按下Test。
















17.看到這個畫面代表連線成功,設定是正確的,請點下確定。












18.點下Sava儲存此設定。
















19.點選右上角X 關掉這個畫面。






















20.開啟Vistual Studio ,點選伺服器總管,『加入資料連接』。
21.選擇Microsoft ODBC資料來源,點選繼續。



















22.選擇剛才新增的Postgresql_Demo,按下確定。





























23.現在可以看到資料連接多出了剛才新增的PostgreSQL連接。

2015年3月14日 星期六

[postgresql]重設postgrsql密碼

有時候安裝postgresql時打的密碼忘記了,這時候只好用這招。


控制台->系統安全性
















系統管理工具








點選服務











停止




確認服務已停止




























進入Postgresql的data目錄



















複製一份pg_hba.conf(以防改壞了)































打開pg_hba.conf找到框起來的2行,把md5改成trust後存檔


























啟動服務


















pgAdmIII連接本機資料庫,跳出密碼框後直接按下『OK』

























點選Change Password






























打上新密碼後按下『OK』即可。










把紅框處修改成md5後存檔























重啟服務

































2015年3月6日 星期五

「Postgresql」救援別人的data資料夾 in Win7

有時候客戶的Postgrsql 或 硬體發生問題,無法啟動時,首要之急把Postgresql的data備份下來,正常的情況下,把自己的data先備份起來 ,改個名字,把客戶的data放進去後,是無法正常啟動服務的。


步驟如下:

1.停止postgresql 服務

































2.把原本的data資料夾改名。




















3.放入別人的Data資料夾。













4.無論如何先重開機一次。




























5.重開機後嘗試啟動服務(有時運氣好可以正常啟動)。















6.若如上圖則表示無法啟動服務,則用程序的方式啟動postgresql

(請注意,這樣做之後,有可能你原本的data掛回去也無法用服務啟動)

切到Postgresql的bin目錄。

cd "\Program Files (x86)\PostgreSQL\9.1\bin"










輸入
C:\Program Files (x86)\PostgreSQL\9.1\bin>pg_ctl  -D "C:\Program Files (x86)\Pos
tgreSQL\9.1\data" start




























7.看見上圖代表成功,請『允許存取』,請注意,在你備份完資料之前,命令提示字元都不可以關掉。

8.啟動postgresql之後,請立即備份出客戶的資料庫(*.backup),然候再去想辦法修復或重

新安裝自己的postgresql。