最近在实习的公司,我敬爱的组长老大要求我开始自己阅读一些PostgreSQL的源码,深入了解数据库内核,网上关于搭建PostgreSQL并且能够进行调试的教程或帖子基本没有,昨天折腾了一下午,终于把PostgreSQL安装成功并且得以调试了,下面就把相关的步骤列出来,方便大家学习,同时也算是Postgrey自学的第一步吧(后面用PG代替Postgrey,原谅我是懒人吧),言归正传,下面开始:


一、去官方网站下载PostgreSQL当前最新版(当前最新版本为9.3.2)  




如何安装并且开始调试PostgreSQL?_PG

如上图,下载红框内的Source文件。


二、除此之外还需准备Perl(当前最新为5.18.1.1800)Flex、Bison安装包

       之所以用Perl是因为我们后面安装PG主要采用的就是Perl来安装,而Flex、Bison则是PG中对命令或查询语句进行词法、语法解析所用到的,Perl的安装教程请戳这里^_^(安装到C盘也不要紧,我们可以添加系统环境变量解决),Flex、Bison下载后不用安装,至于有童鞋想知道为什么PG需要这两个东西请戳这里^_^。我们现在有Flex、Bison的包,有PG的Source Code及Perl的安装包(要安装),如下图所示:

如何安装并且开始调试PostgreSQL?_PG_02

准备好的程序

如何安装并且开始调试PostgreSQL?_调试_03

Flex_Bison文件夹中的程序


将PG及flex_bison放置于同一文件夹下即可。


三、开始安装PostgreSQL

   首先要修改一个小地方,打开PG文件夹,找到MKVcbuild.pm文件(如下图所示),用文本编辑器打开(如Notepad++),修改其中my $vsVersion = DetermineVisualStudioVersion()该行,变为

my $vsVersion = “9.0.0”,至于为什么这么改,是因为不这么改,我的VS2008就无法打开,并且项目也无法编译成功,这个地方我不敢保证是不是特例还是共性,有待验证。具体如下图所示:

如何安装并且开始调试PostgreSQL?_安装_04

如何安装并且开始调试PostgreSQL?_PostgresSQL_05

如何安装并且开始调试PostgreSQL?_Postgres_06

   接下来如果Perl是安装到了C盘,则在系统环境变量中添加Perl的C盘路径位置,比如:

如何安装并且开始调试PostgreSQL?_PostgresSQL_07

打开你的命令编辑器,因为我的电脑是64位的,这里我打开的是VS自带的64位命令编辑器,CMD也OK。

如何安装并且开始调试PostgreSQL?_PG_08

到MSVC目录下,输入perl build.pl DEBUID

这样就开始编译了,全过程大概需要5分钟吧,期间可能会有若干warning,但是无所谓啦,只有没有error就行,(我自己安装了两遍,有些许warning,但是绝对没有error出现)

编译结束后,就可以打开你的工程了,如下图所示

如何安装并且开始调试PostgreSQL?_安装_09


接着在命令编辑器中继续输入perl install.pl (此处为bin文件夹路径,自己指定)例如:

perl install.pl C:/bin,这样就可以将相关执行文件拷贝到你的bin目录下,将来执行的时候就可以在bin目录下执行了如何安装并且开始调试PostgreSQL?_安装_10


执行完后,恭喜,PG就安装完成了,下面你可以简单的登陆你的PG来进行调试了


四、简单的调试


首先初始化系统数据目录(包括系统表等元数据)输入initdb.exe DB(数据目录名字,可自己指定)

如何安装并且开始调试PostgreSQL?_PG_11

如何安装并且开始调试PostgreSQL?_安装_12


其次启动服务器,输入postgreys.exe -D DB   (注意-D中的D一定要大写)

如何安装并且开始调试PostgreSQL?_PostgresSQL_13


再次,启动客户端(另打开一个窗口),输入psql.exe DB

如何安装并且开始调试PostgreSQL?_Postgres_14


最后,自己可以create database,create table,往table中insert into些数据,最后可以select数据等等,就可以自由操纵了,比如下例中,执行一个Select语句,通过VS2008附加到进程中去跟代码,具体研究PG的细节实现。

如何安装并且开始调试PostgreSQL?_PG_15

如何安装并且开始调试PostgreSQL?_PostgresSQL_16

如何安装并且开始调试PostgreSQL?_PostgresSQL_17

如何安装并且开始调试PostgreSQL?_调试_18



五、结尾


本节只是一个PG的简单部署,只是供有兴趣了解数据库内核的爱好者们提供一个接触开源数据库的方法,笔者自己也只是一个初入数据库内核的人,所以文章难免存在很多不专业的地方,还请各位专业人士,各位大神见谅,本文参照了李大神的相关博文,在此声明,并予以感谢,相关博文地址戳^_^




123