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

     

  • 相关阅读:
    python 代码规范
    Helm 入门指南
    思路和决断
    awk替换第几行第几列的值
    一个awk命令的demo
    装饰模式
    Java多线程Thread.yield(),thread.join(), Thread.sleep(200),Object.wait(),Object.notify(),Object.notifyAll()的区别
    类继承时,构造函数和析构函数的调用次序
    C++中delete和 delete[]的区别
    回溯
  • 原文地址:https://www.cnblogs.com/lyr2015/p/6821958.html
Copyright © 2020-2023  润新知