前端之家收集整理的这篇文章主要介绍了
postgreSql随程序打包,服务启动不了,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
pg
sql的安装过程(windows)较为复杂,官方使用了pginstaller将pg
sql打为一个msi包,单独安装问题不大,但是有以下几个问题: 1、远程桌面安装兼容性差(目前官方的说法是除了win2003都有问题) 2、无法随程序打包 3、安装后的建库工作会受到分区格式的影响 针对以上问题,现给出如下
解决方案: A、在随便一台机器上装好pg
sql,并且建好库、导好数据 B、将整个pg
sql的安装好的目录复制到一个临时
文件夹(例如 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
用户,用来管理服务 netuserpostgres[passwd]/add/PASSWORDCHG:NO rem让postgres
用户不属于users组,官方说不安全,照做 netlocalgroupuserspostgres/delete rem设置postgres
用户密码永不过期 .\bin\netuserpostgres/pwnexp:y rem拷贝
文件,力气活 copy.\dll\*.*%windir%\system32/Y rem赋予postgres
用户logonasservice权限,技巧!! rem插一句废话,ntrights.exe的参数列表里没有我用的这个,:) .\bin\ntrights.exe-upostgres+rSeService
logonRight rem以下摘自pginstaller源
文件,照做,主要是postgres
用户的
文件权限 rem其实是给ntfs用的,xp在fat32格式时会报错,无视! cacls./E/T/Dpostgres cacls./E/T/Gpostgres:R cacls.\data/E/T/Ppostgres:C rem建立Postgre
sql服务,不要像那个台湾人一样加入-L rem否则事件查看器将变成windows写情书给你的地方 .\bin\pg_ctlregister-NPg
sql-Upostgres-P[passwd]-D"%CD%/data" rem启动刚才的服务 netstartPg
sql F、把整个临时目录打包分发,解压后只要运行setup.bat就万事大吉
原文链接:https://www.f2er.com/postgresql/196129.html