windows下安裝 postgresql


1.

下載PostgreSQL的源代碼。解壓。

2. 

在Windows平台下編譯需要跳過一個權限的檢測,否則在編譯的時候可能會出現錯誤。

在\src\backend\main\main.c文件中將  check_root(progname);  注釋掉。

3.

在\src\tools\msvc\Mkvcbuild.pm文件中將  my $vsVersion = DetermineVisualStudioVersion();  改為 my $vsVersion =  '12.00';  否則build時會報錯不能確定版本。

4.

打開Visual Studio自帶的“開發人員命令提示”。(路徑:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts)

切換到源代碼目錄的\src\tools\msvc。輸入命令build(若要編譯debug版,則輸入build debug)。

將會自動編譯,編譯需要一定的時間,稍微等一下。編譯結果是0 Error(s)即可。

編譯后會在PostgreSQL源代碼目錄下生成大量文件,找到pgsql.sln文件,雙擊即可運行Visual Studio並加載該解決方案。

如果用普通的cmd進行編譯,會報錯“cl command not found at src/tools/msvc/Solution.pm line 80.”。

5. 安裝

用Win+R打開cmd窗口,切換到\src\tools\msvc文件夾,執行命令“install 目標目錄”,“目標目錄”是數據庫將要安裝的地址,用戶自行選定。

例:D:\postgresql-9.6.0\src\tools\msvc>install E:\pg_install

運行該命令后會提示Installation complete。這時已用編譯好的PostgreSQL安裝成功,在目標目錄中將會出現如下目錄:

6. 初始化

切換到目標目錄的bin文件夾下,執行命令“initdb 數據庫目錄”。

例:

初始化后如下圖所示:

7. 啟動服務器

“E:\pg_install\bin>postgres -D E:\pg_data”

“E:\pg_install\bin>pg_ctl -D E:\pg_data -l logfile start”

8.

為了能夠調試安裝好PostgreSQL,需要在VS中配置一下,右鍵postgres工程,點擊屬性,如下圖所示:

配置屬性 -> 調試:

其中,命令(Command):要綁定PostgreSQL的postgres.exe。命令參數(Command Arguments):-D 數據庫目錄(注意D要大寫,否則有時候可能會報錯)。工作目錄(Working Directory):數據庫目錄。

9. 創建數據庫

切換到數據庫目錄的bin文件夾下,並執行命令“E:\pg_install\bin>createdb mydb”。

這時打開VS,找到菜單欄中“工具 -> 附加到進程”選項。看到現在應該是有6個postgres.exe的進程,注意記錄一下這六個進程的ID。

執行命令“psql 剛剛創建的數據庫名稱(mydb)”,則進入剛剛創建的數據庫中。

這時再看VS的“附加到進程”中應該有7個postgres.exe的進程和一個psql.exe的進程。

然后attach之前沒有出現過的postgres.exe進程(通常為第一個)。

10. 添加斷點

在postgres工程的postgres.c文件中搜索“simple”,找到一個switch語句。因為postgres.c是psql命令的入口地方,所以在這里加斷點之后,在客戶端執行命令操作的時候就會被VS捕捉到,就可以追代碼了。

例:在psql中輸入“\d”。執行后會調到VS中設斷點的位置。

 

 

------------------------------------------------------------以上是師姐總結部分-----------------------------------------------------------

 如何調試程序:

第一步:

啟動數據庫服務器:右擊postgres-》設置為啟動項。

第二步:

  在工具欄中點擊"本地windows調試器"

   

  此時啟動數據庫的服務器端。如下圖:

   

第三步:在cmd中,啟動客戶端。

    psql mydb (mydb是自己建的數據庫的名字)。

    如下圖:

    

第四步:此時,客戶端和服務器端已經建立了連接。打開VS,找到菜單欄中“工具 -> 附加到進程”選項。VS的“附加到進程”中應該有7個postgres.exe的進程和一個psql.exe的進程。

    然后attach之前沒有出現過的postgres.exe進程(通常為第一個)。

第五步:在源程序中設置斷點。

第六步:在客戶端命令行,寫sql語句,回車即可。

假如想要停止調試過程,而不是關閉這個客戶端-服務器這個連接的話,點擊工具欄中的 綠色的"繼續". 不是點擊那個紅色的停止調試。

 

安裝遇到的問題:

   在build源碼的時候,一定要輸入build命令,build過程卡在了某一步,因此我放棄了該命令,使用了build debug。

   然后接着使用install命令安裝數據庫之后生成的bin目錄下,居然沒有任何東西。

 因此,再接着initdb 初始化數據庫時,顯示initdb 不是內部或者外部命令。

注意:

  1.首先,install 命令之后,出現的bin目錄下是會存在一系列exe程序的。initdb.exe是其中的一個程序。

解決方法:

  使用build命令,而不是使用build debug命令。當遇到build過程卡住時,使用鍵盤上的上箭頭,重新執行上次的build命令,居然可以成功了。

  執行install 命令之后,bin目錄下出現了一系列的exe程序。

修改源程序之后,如何重新安裝?

  A:打開Visual Studio自帶的“開發人員命令提示”。切換到源代碼目錄的\src\tools\msvc。輸入命令build debug。

  B:關閉之前打開的進程:

    關閉客戶端:使用命令 :\q

    關閉服務器端:在vs中點擊“關閉調試即可”。

  B:打開cmd窗口,切換到\src\tools\msvc文件夾,執行命令“install 目標目錄”。(之前的安裝目錄pg_install可以不刪除,pg_data不用刪除)

  

  C:(因為之前的數據都還在pg_data中。因此不需要重新初始化。)

  D:重新執行調試過程。

 

 

注意:

1.不可以直接在vs中重新生成解決方案。必須要重新build ,重新安裝。

2.在重新安裝的過程中:

退出客戶端:使用命令 \q .

退出服務器端:在cmd把之前打開的數據庫服務進程關閉,退出cmd.

否則,在install的過程會報錯如下:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM