注意下载的是二进制版,不是带Windows Installer的,即绿色版本
http://www.enterprisedb.com/products-services-training/pgbindownload
x86下载http://get.enterprisedb.com/postgresql/postgresql-9.2.4-1-windows-binaries.zip
x64下载http://get.enterprisedb.com/postgresql/postgresql-9.2.4-1-windows-x64-binaries.zip
执行下列步骤前,暂作以下假定:
PostgreSQL拟装在d:\postgresql
数据库以后拟存放在d:\postgresql\data
首先下载postgresql-9.2.4-1-windows-x64-binaries.zip最新版待用,下列步骤达到手工安装好PostgreSQL,初始化数据库,将PostgreSQL注册为服务。
1、PostgreSQL.zip解压至d:\postgresql后,创建一个data目录;
2. 设置环境变量,编辑批处理文件 配置环境变量.vbs(永久生效) 执行 配置环境变量.vbs 文件
3、在空白处按住shift点击鼠标右键,新开一个cmd窗口,并cd 至d:\postgresql\bin ;
4. 初始化并创建数据库(一次即可)
initdb.exe -D d:\postgresql\data -E UTF-8 --locale=chs -U postgres -W
-D :指定数据库簇的存储目录E:\pgsql\data
-E :指定DB的超级用户的用户名postgres
--locale:关于区域设置(chinese-simplified-china)
-U :默认编码格式chs
-W :为超级用户指定密码的提示
4. 启动数据库
注:若未注册为系统服务,则需每次手动启动,否则pgadmin3连接数据库失败
pg_ctl -D D:\softwave\PostgreSQL\data -l logfile start
启动后,在数据库安装的主目录下生成一个logfile文件:D:\softwave\PostgreSQL\logfile
5. 注册为win8系统服务
注:需管理员权限方可
pg_ctl register -N PostgreSQL -D D:\softwave\PostgreSQL\data
查看已经注册的服务:win+R在弹出的运行框中,输入:services.msc
net start PostgreSQL 查看是否启动:命令行下输入tasklist
6. 配置pgAdmin3客户端
目录为D:\postgresql\bin\ pgAdmin3,双击,配置
注意:此处由于没有slsadmin(自定义的用户),会报错,请使用刚才创建的postgres用户登录,登陆好了之后,使用这个账号创建别的账号
7. 连接数据库成功
如何让postgresql支持远程登录呢?
postgresql默认情况下,远程访问不能成功,如果需要允许远程访问,需要修改两个配置文件,说明如下:
1.postgresql.conf
将该文件中的listen_addresses项值设定为“*”,在9.0 Windows版中,该项配置已经是“*”无需修改。
2.pg_hba.conf
在该配置文件的ipv4配置后面的host all all 127.0.0.1/32 md5行下添加以下配置,或者直接将这一行修改为以下配置
host all all 0.0.0.0/0 md5
如果不希望允许所有IP远程访问,则可以将上述配置项中的0.0.0.0设定为特定的IP值。
注意:listen_addresses项值设定为“*”这个地方默认是被注释掉的,直接该参数,没有去注释的话,还是不能访问的,请使用pgadmin自带的工具去修改
postgresql服务启动不了
1、使用pg_resetxlog命令。
这个命令使用很明显需要到bin目录下。
D:\postgresql\bin
进入到这个目录后
然后使用pg_resetxlog D:\postgresql\data
有可能会报一个错误postmaster.pid未删除,手动把这个删除即可。
或者pg_resetxlog -f D:\postgresql\data 强制删除。
要记得这个有可能会影响数据。因为毕竟涉及到事务。
这个命令执行成功后,重启postgresql服务即可,如果还不行,手动把postres的进程全部杀掉。
确认已经没有postgres进程后再去重启postgres服务即可。这个基本上就可以了。
还有另外一种方法,就是把postmaster.pid手动删除,然后把postgres进程全部杀掉。然后再重启postgresql服务即可
参考文章:https://www.cnblogs.com/winkey4986/p/5360551.html