它提供了多版本并行控制,支持几乎所有 SQL 构件(包括子查询,事务和用户定义类型和函数), 并且可以获得非常广阔范围的(开发)语言绑定 (包括 C,C++,Java,perl,tcl,和 python)。本文介绍的是其在windows系统下的安装过程。
一般说来,一个现代的与 Unix 兼容的平台应该就能运行 PostgreSQL。而如果在windows系统下安装,你需要 Cygwin 和cygipc 包。另外,如果要制作服务器端编程语言 PL/Perl,则还需要完整的Perl安装,包括 libperl 库和头文件。
在磁盘支持方面,需要65MB左右用于存放安装过程中的源码和大约15 MB的空间用于存放安装目录;一个空数据库大概需要25MB;然后在使用过程中大概需要在一个平面文本文件里存放同等数据量数据五倍的空间存储数据,如果你要运行回归测试,还临时需要额外的90MB空间。
第一步:从网上下载基于windows的Cygwin安装程序,双击打开。
第二步:选择安装类型。由于我们已将安装程序下载到了本地硬盘,故选择第三项,然后单击“下一步”。
第三步:选择安装路径。一般按其默认即可。
第四步:选择下载文件包在本机存放路径。请根据实际选择。
接着会提示选择连接类型、下载站点、选择安装包(需要确定加上:cygrunsrv (category Admin) 、postgresql (category Database)),之后便开始下载包并安装cygwin了。
第一步:将cygserver 安装成NT服务并启动
a.运行脚本:$ /usr/bin/cygserver-config
b.在win2003中设置环境变量:CYGWIN=server
c.重启win2003
第二步:在win2003的DOS状态下,按下图所示新建用户帐户及密码
第三步:在系统所在分区新建一文件夹
例如:D:/cygwin/home/postgres
第四步:更新文件: /etc/passwd
使用命令:mkpasswd -l -u postgres >> /etc/passwd
解释: 向/etc/passwd文件中加入用户postgres的信息
第五步:新建存放数据的目录并设置postgres为该目录的所有者
mkdir /usr/share/postgresql/data
chown postgres /usr/share/postgresql
chown postgres /usr/share/postgresql/data
第六步:配置用户权限
在运行框内输入“secpol.msc”打开“本地安全设置”窗口,依次点击“本地策略”-“用户权限分配”,在右边窗口里找到“作为服务登录”,双击打开。
在出现的窗口里单击“添加用户或组”添加一个名为“postgres”的用户。
第七步:初始化数据区域
注销原来的用户,改用postgres进入win2003后运行如下命令:
initdb –d /var/postgresql/data
注意:PostgreSQL安装程序只能在NTFS分区中完成数据库的初始化工作,而PostgreSQL服务器程序自身和一些工具程序可以安装在任何分区中。如果为FAT分区格式,可以正常安装PostgreSQL,但不要进行数据库的初始化工作,只能待在安装完成后,在FAT分区上手动执行initdb.exe程序来进行,但安全性和可靠性就不能保证了,要想建立表空间也会失败。
第八步:将postmaster(PostgreSQL的服务器)安装成NT服务并启动
使用命令: cygrunsrv –I postmaster –p /usr/bin/postmaster –a “-d
/usr/share/postgresql/data –I” –y cygserver –s int –u postgres -o
命令解释:
-I postmaster:新建一个名为postmaster的服务。
-p /usr/bin/postmaster:应用程序路径为/usr/bin/postmaster。
-a”-D /usr/share/postgresql/data -i”:
postmaster 将目录 /usr/share/postgresql/data 做为数据目录,必须设置“-i”(TCP/IP 连接) 和“-D”参数。
-y cygserver:指明postmaster依赖于cygserver
-s int:发送信号 INT when terminated is run by the user (-u) postgres
-o :在系统退出时停止服务
注:更详细的参数说明可以使用命令:“cygrunsrv -h”以及“postmaster –help”
之后Cygrunsrv 将会让你输入两次密码。
OK,经过以上配置后,即可使用命令“psql –u postgres template1”登录postgresql数据库了。
注:“template1”是Postgresql在初始化时自动创建的测试数据库。
原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/232723.html