zoukankan      html  css  js  c++  java
  • windows下安装 postgresql

    1.

    下载PostgreSQL的源代码。解压。

    2. 

    在Windows平台下编译需要跳过一个权限的检测,否则在编译的时候可能会出现错误。

    在srcackendmainmain.c文件中将  check_root(progname);  注释掉。

    3.

    在src oolsmsvcMkvcbuild.pm文件中将  my $vsVersion = DetermineVisualStudioVersion();  改为 my $vsVersion =  '12.00';  否则build时会报错不能确定版本。

    4.

    打开Visual Studio自带的“开发人员命令提示”。(路径:C:Program Files (x86)Microsoft Visual Studio 12.0Common7ToolsShortcuts)

    切换到源代码目录的src oolsmsvc。输入命令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 oolsmsvc文件夹,执行命令“install 目标目录”,“目标目录”是数据库将要安装的地址,用户自行选定。

    例:D:postgresql-9.6.0src oolsmsvc>install E:pg_install

    运行该命令后会提示Installation complete。这时已用编译好的PostgreSQL安装成功,在目标目录中将会出现如下目录:

    6. 初始化

    切换到目标目录的bin文件夹下,执行命令“initdb 数据库目录”。

    例:

    初始化后如下图所示:

    7. 启动服务器

    “E:pg_installin>postgres -D E:pg_data”

    “E:pg_installin>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_installin>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 oolsmsvc。输入命令build debug。

      B:关闭之前打开的进程:

        关闭客户端:使用命令 :q

        关闭服务器端:在vs中点击“关闭调试即可”。

      B:打开cmd窗口,切换到src oolsmsvc文件夹,执行命令“install 目标目录”。(之前的安装目录pg_install可以不删除,pg_data不用删除)

      

      C:(因为之前的数据都还在pg_data中。因此不需要重新初始化。)

      D:重新执行调试过程。

    注意:

    1.不可以直接在vs中重新生成解决方案。必须要重新build ,重新安装。

    2.在重新安装的过程中:

    退出客户端:使用命令 q .

    退出服务器端:在cmd把之前打开的数据库服务进程关闭,退出cmd.

    否则,在install的过程会报错如下:

     

  • 相关阅读:
    js对象数组(JSON) 根据某个共同字段 分组
    一个 函数 用来转化esSearch 的range 条件
    关于 vuex 报错 Do not mutate vuex store state outside mutation handlers.
    android listview 重用view导致的选择混乱问题
    android SDK和ADT的更新
    Android中adb push和adb install的使用区别
    pycharm中添加扩展工具pylint
    su Authentication failure解决
    Putty以及adb网络调试
    有关android源码编译的几个问题
  • 原文地址:https://www.cnblogs.com/lyr2015/p/6821958.html
Copyright © 2011-2022 走看看