在Windows上安装PostgreSQL

之前我记录了一篇手工在Windows上安装PostgreSQL的文章,刚才在安装PostgreSQL 9.0.3时发现了另一种方法,可以比手工安装更快速些。

,下载PostgreSQL安装包
下载的文件的名称为postgresql-9.0.3-1-windows.exe

,安装PostgreSQL程序
要注意的是,PostgreSQL必须要安装在NTFS格式的分区里。

特别要注意,locale不可以选择Default,如果为了省事,在这里可以选择“新加坡”,这样安装后可以直接使用,无需进行后续的步骤。在这里我选择“新加坡”,但是我还是会进行后续的步骤。

,更改Windows帐号postgres的密码
在安装过程中把locale选择“新加坡”后,可以正常安装。安装过程会给Windows添加一个名为postgres的帐号,为了安全,先修改这个帐号的密码。

,停止PostgreSQL服务
在管理工具的服务项里找到PostgreSQL服务,把它停止。并把此服务登录的身份帐号密码修改为第三步修改后的新密码。

,删除PostgreSQL程序目录下的data目录

,在控制台切换到postgres用户
C:\>runas /noprofile /env /user:postgres "cmd"

因为PostgreSQL安装程序在Windows里注册PostgreSQL服务时指定的是使用postgres这个Windows帐号作为登录身份,所以初始化数据库时必须也是这个帐号,否则PostgreSQL服务将无法启动。

其实不切换到postgres用户,PostgreSQL也能正常初始化数据库,但基于上面提到的原因,如果PostgreSQL服务指定的登录身份帐号与初始化数据库时所用的帐号不一致时,PostgreSQL服务将无法启动。

,初始化数据库
这里假设PostgreSQL程序安装在D:\PostgreSQL目录下。在第六步新弹出的窗口里执行以下命令:
D:\PostgreSQL>bin\initdb.exe -D "D:\PostgreSQL\data" -E UTF-8 --locale=chs -A md5 -U admin -W

如果不加-U admin -W,则PostgreSQL数据库的超级用户是执行初始化命令时的当前Windows帐号。因为是切换到postgres这个Windows帐号里进行初始化数据库操作的,所以这时PostgreSQL的超级用户将是postgres。

,在管理工具的服务项里启动PostgreSQL服务