今天第一次接触在Windows Server2008/2012 下安装PostgreSQL,遇到的问题总结如下:
1.首先,在安装的时候,我更改安装目录改为自定义的E盘,安装时报错:libintl.dll没有找到。尝试下载该文件放到指定目录下,无果。最终用默认的C盘安装目录安装成功。
2.安装快结束时报错:集群Cluster未知错误,这个错误可以忽略。
3.安装结束后,服务不能启动,报错:PostgreSQL 服务启动后停止 某些服务在未由其他服务或程序使用时将自动停止,最终发现安装目录下的data文件夹为空,
解决办法:
①增加用户postgres。在启动控制面板/管理工具/计算机管理/本地用户和组,增加一个普通用户,如postgres,密码123;
②设置用户权限。由于服务器系统的默认具有最高文件权限的用户并不是系统用户Administrator,而是TrustedInstaller。我的办法是:参照http://blog.sina.com.cn/u/5379679437 先将C盘的所有者更改为Administrator,把用户postgres添加到对C盘完全控制权限用户。
③以管理员身份运行 cmd.exe,定位到安装目录的bin文件夹,我的是默认安装目录,所以输入:cd C:/Program Files/PostgreSQL/9.3/bin/,在用用户postgres的身份打开cmd.exe,输入:runas /user:postgres cmd ,如果没有第二步用户权限设置,会报错访问拒绝。成功后自动跳出用户postgres的cmd窗口。输入:cd C:/Program Files/PostgreSQL/10/bin/,再输入:initdb -D "C:/Program Files/PostgreSQL/10/data" -E UTF-8 --locale=Chinese,成功后,检查data文件夹里面填入19个文件。
④安装PostgreSQL服务.回到Administrator启动的cmd.exe界面中,输入: cd C:/Program Files/PostgreSQL/10/bin,再输入:pg_ctl register -N PostgreSQL -D "C:/Program Files/PostgreSQL/10/data/",成功后显示:服务“PostgreSQL”已经注册。在服务里面可以找到“PostgreSQL”服务,启动服务成功。
是时候享受胜利的果实了,打开pgAdmin III,名称和主机处输入localhost,输入用户postgres密码,连接成功。