(1)PostgreSQL可以从http://www.postgresql.org下载到
添加新的postgres用户,并将密码设为:p
net user postgres p /ADD /EXPIRES:NEVER /PASSWORDCHG:NO
net localgroup users postgres /delete
(2) 初始化数据库
执行RUNAS报错1058的解决方法
runas错误:无法运行-cmd.exe
1058:无法启动服务,原因可能是已被禁用和想关联的设备没有启动。
导致这个报错的主要原因是Secondary Logon这个服务没有启动,解决方法:开始-运行-services.msc,把其中的Secondary Logon服务启动即可。
runas /noprofile /env /user:postgres "C:/pgsql/bin/initdb.exe -D C:/pgsql/data -E UTF8 --locale=C -U postgres -P p"
(3)注册到Window Service,服务名是PostgreSQL
pg_ctl.exe register --pgdata="E:\Program Files\pgsql\data" -N PostgreSQL -U postgres -P p
打开services.msc 修改 PostgreSQL服务的登录密码,否则无法启动
(4)net start PostgreSQL就可以启动服务,对应的停止服务就是net stop PostgreSQL
(5)测试
用createdb -E UTF8 testdb建立一个测试的数据库testdb,用psql testdb就可以进入交互方式,直接操作数据库了。
(6)增加超级用户
初始化数据库时,同时创建一个和当前windows登录用户id相同的superuser。
执行createuser -s pgsql就可以创建出pgsql这个超级用户,但是是没有口令的。然后用pgAdminIII登录,把postgres用户的owner改成pgsql。然后为pgsql设置口令。
2012-03补充安装问题解决:
如果安装成服务的话,需要你的机器上有NTFS分区(安装成服务就可以做为系统的一个服务,做为系统的一个后台应用进程执行比较方便)否则安装不能成功,会报错的,如果你机器上没有NTFS分区,可以参考下面的步骤安装(服务也可以在后来被安装上):
1. 首先安装的时候不要选择安装成服务,仅仅安装软件,假设到 c:\pgsql
2. 创建一个无管理员权限的用户,比如 postgres,设定密码,比如 1234
3. 以管理员,比如 Administrator 登录,打开控制台,简称控制台 A
4. 在控制台 A 运行 runas /user:postgres cmd,打开一个以 postgres 用户身份执行的控制台,简称控制台 P
5. 在控制台 P 上运行 c:\pgsql\bin\initdb -D d:\pg_data 初始化数据库集群
6. 在控制台 A 执行 c:\pgsql\bin\pg_ctl register -N PostgreSQL -U posgres -P 1234 -D d:\pg_data 注册服务
7. 在 控制面板 --> 管理工具 --> 服务 中启动 PostgreSQL
可能启动失败,是因为创建的用户 postgres 没有以服务方式登录的
权限,打开 PostgreSQL 服务的属性窗口,重新设置密码即可。
8. 为方便起见,可在控制台 P 创建一个管理员名的数据库超级用户,
比如 c:\pgsql\bin\createuser -a -d -P Administrator