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的过程会报错如下:

windows下安装 postgresql的更多相关文章
- CentOS 6.9下安装PostgreSQL
操作系统:CentOS6.9_x64 PostgreSQL官方网址: https://www.postgresql.org/ 安装数据库 使用如下命令: yum install postgresql- ...
- linux和windows下安装python拓展包及requirement.txt安装类库
python拓展包安装 直接安装拓展包默认路径: Unix(Linux)默认路径:/usr/local/lib/pythonX.Y/site-packagesWindows默认路径:C:\Python ...
- Sphinx在windows下安装使用[支持中文全文检索]
原文地址:http://www.fuchaoqun.com/2008/11/sphinx-on-windows-xp/ 前 一阵子尝试使用了一下Sphinx,一个能够被各种语言(PHP/Python/ ...
- Windows 2008R2 安装PostgreSQL 11.6
前些天在CentOS 7.5 下安装了PostgreSQL 11.6.除了在无外网环境下需要另外配置之外,其他没有什么差别.今天主要写一下在Windows下面安装PostgreSQL的问题. 在官网看 ...
- 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)
相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...
- Windows 下安装 MongoDB
Windows 下安装 MongoDB 的步骤:1.官网www.mongodb.com下载安装包或zip包2.解压下载的文件到文件夹 D:\mongo .3.使用管理员权限打开CMD,导航到目录 D: ...
- Coreseek Windows下安装调试
由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx[中文是狮身人面像]这个全文检索引擎,听说挺好用的,不过没有中文分词.后面又去找了一下,找到了Coreseek,一款中文全文检索/搜索软 ...
- 从零开始学 Java - Windows 下安装 Tomcat
谁都想分一杯羹 没有一个人是真正的无私到伟大的,我们试着说着做自己,与人为善,世界和平!殊不知,他们的真实目的当你知道后,你会被恶心到直摇头并下意识地迅速跑开,下辈子都不想见到他.不过,他没错,你也没 ...
- 从零开始学 Java - Windows 下安装 JDK
关于未来 "我要死在火星.在我死去的时候能够想着人类能有一个美好的未来--有可持续的能源,同时能够殖民其他的星球来避免人类灭绝的最坏可能." 官网下载 直接打开官网:http:// ...
随机推荐
- Python中使用 Selenium 实现网页截图实例
Selenium 是一个可以让浏览器自动化地执行一系列任务的工具,常用于自动化测试.不过,也可以用来给网页截图.目前,它支持 Java.C#.Ruby 以及 Python 四种客户端语言.如果你使用 ...
- smarty模板 变量 运算符 表达式 流程控制 函数
① 从配置文件中读取配置: 1,在模板页面加载配置文件 html页面 不是php页面<{config_load file='fo.conf'}> 2,在需要用到配置的地方加<{#si ...
- 【BZOJ3309】DZY Loves Math 莫比乌斯反演+线性筛(好题)
[BZOJ3309]DZY Loves Math Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10 ...
- tomcat 编码问题
默认情况下,tomcat使用的的编码方式:iso8859-1 修改tomcat下的conf/server.xml文件 找到如下代码: < Connector port="8080 ...
- 让intellij挂在异常处,特别是出现null pointer的地方
1 在Intellij中设置java exception breakpoint 在调试模式下,run->view breakpoints 在java exception breakpoints- ...
- Android系统移植与调试之------->如何修改Android设备添加重启、飞行模式、静音模式等功能(二)
今天要说的是为Android设备添加重启.飞行模式.静音模式按钮,客户需求中需要添加这项功能,在长按电源键弹出的菜单中没有这些选项,谨以此文记录自己添加这个功能的过程. 首先找到长按电源键弹出的对话框 ...
- 【Android】开发优化之——调优工具:dump hprof file 查看内存情况,找到内存泄露
虽说知道一般性的开发android应用须要注意的问题,但是也有水平參差不齐的情况.特别是维护代码,假设内存占用大,内存溢出严重,又怎么解决呢? -- 通过DDMS把heap抓出来分析 1.打开DD ...
- C#基础知识之三
C#基础知识之三 1. 程序集间的继承:基类必须被声明为public.必须在project中包含对该基类的程序集引用. 2. 对其它程序集引用和添加对using指令的差别:前者是告诉编译器所需的类 ...
- 创建第一个SpringBoot的demo程序
在这里,我只介绍手动创建的其中一种方式. 默认,你已经安装了IntelliJ IDEA和JDK1.8,如果没有,请先安装. 第一步:选择新建一个项目 File-->New-->Proj ...
- activiti 基础搭建
首先在eclipse内添加activiti的插件,https://blog.csdn.net/qq_22701869/article/details/79537971 1.创建一个maven的java ...