1、環境準備
centos6.5 32位、VMware Workstation 12 Pro
postgresql9.6源碼、eclipse for c++、jdk1.8
說明:虛擬機配置內存最好大於等於4G,硬盤20G就可以了。
2、文件預覽
說明:
data:pgsql數據庫課數據存儲文件夾
eclipse:eclipse文件夾
jdk1.8:jdk文件夾
pg:pgsql編譯安裝文件夾
pgsql:源碼文件夾
workspace:eclipse工作空間
2.1 整個操作都是在用戶postgres下進行
添加用戶
useradd postgres
設置密碼
passwd postgres
2.2 安裝依賴包
libreadline5-dev、zlib1g-dev、bison和flex
centos6.5基本都有這些包
沒有的話通過yum安裝
如:
yum install flex
用apt-get install進行安裝的,在安裝過程中,可能遇到提示說找不到包的情況,例如安裝 libreadline5-dev時就提示找不到包的情況。
這時我們需要使用apt-get undate 跟新下源再重新安裝,如果還是找不到,則可以使用它提示中給出的類似軟件包代替安裝即可(這裏介紹的找不到應對安裝包的情況,適用於任何Ubuntu下的安裝情況,大家可以舉一反三)。例如我們使用libreadline-gplv2-dev代替libreadline5-dev即可。
檢查是否有的命令:
rpm -qa|grep bison
3、安裝jdk、postgresql、eclipse
3.1 jdk
cd ~
mkdir software
cd software
解壓:
tar zxvf jdk-8u11-linux-i586.tar.gz
配置環境變量:
vi ~/.bash_profile
添加如下(/home/postgres/software/jdk1.8是jdk目錄)
export JAVA_HOME=/home/postgres/software/jdk1.8
export CLASSPATH=${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
(記住,每修改一次.bash_profile都得執行下面操作)
source ~/.bash_profile
java -version
3.2 postgresql
tar jxvf postgresql-9.6.0.tar.bz2
mv postgresql-9.6.0 pgsql
配置pgsql參數:(/home/postgres/software/pg爲pgsql安裝目錄,後面還會用到)
cd pgsql
./configure --prefix=/home/postgres/software/pg --enable-depend --enable-cassert --enable-debug
3.3 eclipse
tar zxvf eclipse-cpp-mars-1-linux-gtk.tar.gz
進入eclipse目錄
cd eclipse
啓動eclipse(啓動前確保jdk安裝好了,且環境變量配好了)
./eclipse
4、編譯pgsql
file - import
選擇Existing Code as Makefile Project
然後點擊Next,在下面的圖示中選擇PostgreSQL源碼所在的目錄,併爲工程文件起一個項目名,並選擇Linux GCC編譯器
由於PostgreSQL是使用C編寫的,所以也要把C++勾掉,只保留C,如上圖所示,然後點擊Finish,等待工程導入完畢,這裏需要注意的是隻有當工程完全導入之後纔可以執行下面的操作,否可可能出現錯誤,(可以通過Eclipse右下角查看當前導入進度)。當工程完全導入之後沒有出現錯誤,則表明PostgreSQL編譯成功。
如果console控制檯沒有日誌,也可以自己手動編譯
project - build all
編譯成功:
5、安裝pgsql
在導入的工程上右鍵選擇Make Targets 然後選擇Create,如下圖所示:
在出現的窗口的Target name中輸入install點擊OK。
在Make Target選項卡中雙擊install進行安裝:
此時Eclipse控制檯中如下圖所示:
表明PostgreSQL安裝成功
6、運行pgsql
6.1 運行前配置
vi ~/.bash_profile
export PATH=/home/postgres/software/pg/bin:$PATH
export PGDATA=/home/postgres/software/data/
(/home/postgres/software/pg就是–prefix的目錄)
(PGDATA是pgsql數據庫文件地址)
保存並生效
source .bash_profile
6.2 在終端執行:
initdb
生成數據庫文件
表示成功生成。
6.3 此時在Eclipse中項目上右鍵選擇Run As–>Run Configurations
雙擊C/C++ Application,在Main選項卡中點擊Search Project選擇Postgres點擊Apply。
然後再切換到Arguments選項卡,輸入參數:-D /home/postgres/software/data/(即上面命令中PGDATA指定的路徑)。
點擊Run,如果看到如下信息表示安裝成功,此時數據庫可以正式運行了。
7、創建數據庫
查看有哪些數據
psql -l
創建數據庫
createdb demo
連接demo數據庫
psql demo
8、在eclipse中調試pgsql源代碼
8.1 首先得啓動pgsql服務
通過
右鍵項目–run–run configurations(前面有敘述)
再通過終端連接pgsql demo數據庫
psql demo
通過客戶端輸sql語句,找出後端進程id,(即我們需要調試的進程)
select pg_backend_pid();
或
在終端
ps -ef|grep postgres
截圖是主要的幾個進程:
退出命令
\q
8.2 開始啓動debug
右鍵項目名,選擇
run - debug configurations
點擊apply保存參數
再點擊debug,執行
出現如下界面,選擇8611進程(需要調試的進程,即服務端進程)
出現界面,表示debug啓動成功
8.3 調試效果
輸入
select 1;
顯示不往下執行,說明已經進入調試模式,斷點位置
F6執行下一行
執行完效果:
參考:
http://blog.csdn.net/edwzhang/article/details/7610019
http://blog.csdn.net/anzelin_ruc/article/details/8539411
http://www.cnblogs.com/marsprj/archive/2013/02/08/2893519.html