• PostgreSQL数据库随程序打包实例


    Windows版本的PostgresQL安装过程较为复杂(本文特指8.0.3以下版本),官方使用了pginstaller将PostgresQL打为一个msi包,单独安装问题不大,但是有以下几个问题:
      
      1、远程桌面安装兼容性差(目前官方的说法是除了win2003都有问题)
      2、无法随程序打包
      3、安装后的建库工作会受到分区格式的影响
      针对以上问题,现给出如下解决方案:

      A、在随便一台机器上装好pgsql,并且建好库、导好数据
      
      B、将整个pgsql的安装好的目录复制到一个临时文件夹(例如d:\temp),应该包括:
      bin、data、include、lib、share等,视情况可以考虑加入pgadminIII
      
      C、在临时文件夹中建立dll目录,包括以下5个文件:
      libeay32.dll/libiconv-2.dll/libintl-2.dll/libpq.dll/ssleay32.dll
      (都可以在安装好的机器中找到)
      
      D、网上去找个ntright.exe文件,放在bin目录里(随便放哪,但是后面安装完成最好删掉)
      ——修正:网上再去找个netuser.exe,放在bin目录里
      ——感谢canders兄的提醒,之前没考虑到用户帐号过期问题
      
      E、在临时文件夹中建立setup.bat文件,内容如下:

      REM 创建postgres用户,用来管理服务
      net user postgres [passwd] /add /PASSWORDCHG:NO
      REM 让postgres用户不属于users组,官方说不安全
      net localgroup users postgres /delete
      REM 设置postgres用户密码永不过期,技巧!!
      .\bin\netuser postgres /pwnexp:y
      REM 拷贝文件,力气活
      copy .\dll\*.* %windir%\system32 /Y
      REM 赋予postgres用户logon as service权限,技巧!!
      REM 插一句废话,ntrights.exe的参数列表里没有我用的这个
      .\bin\ntrights.exe -u postgres +r SeServiceLogonRight
      REM 以下摘自pginstaller源文件,照做,主要是postgres用户的文件权限
      REM 其实是给ntfs用的,xp在fat32格式时会报错,无视!
      cacls . /E /T /D postgres
      cacls . /E /T /G postgres:R
      cacls .\data /E /T /P postgres:C
      REM 建立PostgresQL服务,不要加入-L,注意%CD%的用法
      REM 否则事件查看器将变成windows写情书给你的地方
      .\bin\pg_ctl register -N PgSQL -U postgres -P [passwd] -D "%CD%/data"
      REM 启动刚才建好的服务
      net start PgSQL
      F、把整个临时目录打包分发,解压后只要运行setup.bat就完事大吉
      G、有经验的朋友可以在bat中加入条件判断或者其他标志,我就偷懒了
      注:在win2000、winxp、win2003 (ntfs、fat32、远程桌面、中文父文件夹)下通过测试
  • 相关阅读:
    SQL——插入数据时,遇上存在的数据
    软件工程——软件设计及设计方法
    踩坑1NIDIA驱动失效简单解决方案:NVIDIASMI has failed because it could‘t communicate with the NVIDIA driver.
    踩坑3ubuntu caffe 环境配置
    5使用lenet5 进行mnist手写字体训练以及预测
    dot” not found in path
    VsCode 配置window编译器cl.exe编译器
    c++ 类模板编程
    踩坑2Ubuntu16.04 安装配置NVIDIA 驱动+CUDA+CUDNN
    1使用anaconda创建一个python2的独立环境
  • 原文地址:https://www.cnblogs.com/top5/p/1597135.html
Copyright © 2020-2023  润新知