安装Postgresql出现如下问题:
The Postgresql installer must be run on the system console,not in a terminal services session.
原因分析:Go Daddy的virtual dedicated server有一些权限限制,特别是其Windows Server 2003系统无法顺利安装Postgresql。运行pgsql的官方二进制安装包(至少包括8.1和8.2版本,可能包括所有版本),会出现以上提示。这是因为,为了初始化数据库,Postgresql安装程序需要启动一个独立的后台进程,因此安装程序不能在终端服务会话中运行,需要从控制台中启动。 一般要解决这个问题,可以通过在客户端执行mstsc /console命令来启动远程桌面连接,这会锁定服务器上的本地控制台而拥有完全的控制权,这样Postgresql的安装就没有问题。而GoDaddy的VDS有较严格的访问限制,mstsc /console是无法成功建立连接的。VNC也无法正常连接。 不过还是可以另辟蹊径的。pgsql的备份方式中,有一种文件系统级别的备份,就是直接copy数据库目录,还原时覆盖即可。这就意味着,pgsql的数据都是纯粹以文件的形式存在的。经过hotpoint一个下午的勇敢探索,研究出以下方法: 首先,在普通系统上正常安装好pgsql(当然两边的OS要一样),并复制整个安装文件夹,如C:\Postgresql。 不一定是新装的pgsql。已有系统的也可以,这也相当于是迁移现有pgsql到其他系统的一个便捷方法。 1.将文件复制到新系统,下面以C:\Postgresql为例 2.在系统中建立一个普通用户postgres 3.以系统管理员身份登陆,进入C:\Postgresql,然后运行以下命令设置权限: cacls . /T /E /P postgres:R cacls data /T /E /P postgres:C 4.再进入C:\Postgresql\bin目录,运行命令注册服务: pg_ctl register -D c:\Postgresql\data -N Postgresql 上面两步的操作输出如下: 5.打开Services管理,会看到新增的Postgresql服务 在Log On中修改该服务的启动用户为postgres 现在启动Postgresql服务吧!!