Windows下安装PostgreSQL8.2图解

更新时间:2024-01-19 04:58:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Windows下安装PostgreSQL8.2图解

1. 安装之前检查你要安装 PostgreSQL的分区是不是NTFS格式的(还有就是以前如果安装过,卸了之后应该回到PostgreSQL安装目录把PostgreSQL文件夹删除,还有就是在本地用户名里面把原先安装过PostgreSQL的用户名删除),不推荐安装到FAT32分区中是因为:

PostgreSQL首要任务是要保证数据的完整性。FAT和FAT32文件系统不能提供这样的可靠性保障,而且FAT文件系统缺乏安全性保障,使得保护原始数据无法保证不被未经授权的更改。最后,PostgreSQL使用一项“多分点“的功能来完成表空间功能,这一特性在FAT文件系统下也是无法实现的。

NTFS文件系统是一个日志文件系统,提供了好得多的可靠性和恢复功能,而且它有较全面的访问控制功能,并提供PostgreSQL要用到的多分点功能。 基本上述原因,PostgreSQL安装程序只能在NTFS分区中完成数据库的初始化工作,而PostgreSQL服务器程序自身和一些工具程序可以安装在任何分区中。 然而也要看到,在一些系统中,特别是开发人员的电脑上,也许只有一种FAT分区,在这种情况下,你可以象正常情况下一样安装PostgreSQL,但不要进行数据库的初始化工作,在安装完成后,在FAT分区上手动执行initdb.exe程序,但安全性和可靠性就不能保证了,并且建立表空间也会失败。

2. 下载安装文件(下载地址:

http://www.postgresql.org/ftp/binary/v8.2.4/win32/)到本地后,先用解压缩工具把压缩包解开,然后像安装其他Windows应用程序一样,双击postgresql-8.2.msi就可以开始安装向导了。双击后出现如下界面: 注意:选中下面的复选框(把详细的安装日志写到当前安装目录,以备排查安装故障)——>点Start开始安装:

2.出现如下欢迎PostgreSQL安装界面,直接点击Next下一步:

3.出现如下安装协议界面,点Nex下一步t:

4.在出现的如下界面中,我们先改安装路径(你可以自行选择,但现在安装的分区必须是NTFS,如果你要安装在其他格式的分区的话,需要在安装完后,手

动运行Initdb.exe。),其中分四大部分,分别是数据库服务器端、用户界面、数据库驱动和开发模块。在这里是全部选上,直接在第一个选项(PostgreSQL)上点击左键,在出现的下拉列表中选择第二项,全部选上后,下一步Next:

5.接下来是服务配置,把该数据库服务器作为Windows的一个系统服务运行:在出现的如下界面(改动之前)中,几个注意的是:

Account name项代表PostgreSQL在系统中创建的用户,这一选项可以自由选择,但不能是系统中已存在的用户名(可以在DOS下通过net user命令来查看已经存在的用户,也可以在我的电脑右键管理中查看用户和组),也可以默认(但我认为最好自己改动一下,不要默认的好)。

Account domain项代表你计算机上的完整计算机名称,这可以到“我的电脑”——>右击属性——>计算机名,在里面内容中有个完整计算机的名称(如我机器上的:cao-393d0fd737d),将它复制,名称最后的那一点不要也复制上了,粘贴到Account domain项中(注意只能用快截键Ctrl+V粘贴)。最后如图(改动之后)。

在接下来的两个选项中(Accunt password和Verify password)不用我们管,在点击Next后它会弹出对话框选是,确定即可,

没改动之前

相对应的Accpunt domain

改动之后

6.出现如下界面,其中要注意的是:Port number代表配置数据库PostgreSQL的监听端口;Locale项可以在下拉列表中选(Chinese,People’s Republic of China )代表本地区域;Addresses(连接许可)可选也可以不选;Encoding项在下拉列表中选UTF-8编码(关键);Superuser name代表PostgreSQL的用户名,自己可以自行改动,也可以默认(建议改为自己喜欢的名称吧);Password

进入PostgreSQL所需的密码(不能为空,必须四位以上);Password(again)确认你的密码,最后如图(修改之后),Next之前注意在你的服务中必须把Secondary Logon服务启动。点击下一步Next后,会弹出一个远程连接的选项,提示本地连接数据库默认都可以被接受(但是如果想让远程计算机也能连接到数据库的话,你需要在安装完成后,单独设置pg_hba.conf文件):

修改之前

修改之后

7.在出现的对话框中选择在默认创建的测试数据库template1中激活的过程语言,PL/perl需要ActiveState Perl 5.8的安装支持,PL/python则Python 2.3的支持,我这儿只选择了pgsql了。注意这个对话框只有你在选择了让

PostgreSQL作为一个系统服务运行,并且选择了初始化数据库组件后才会出现。接着Next

8.在出现的对话框中是选择在测试数据库template1中激活的模块,所有的扩展文件都是会被安装上,这一步只是选择在你所有的数据库中默认激活哪些模块。这些扩展模块能提供一些增强的功能,可以按照如下图勾选:之后点NEXT下一步:

9.至此安装配置参数就已经配完了,只需点下一步等待安装完成就可以了,PostgreSQL安装速度极快,根据机器不同时间略有不同。最后出现安装成功界面。

准备安装

安装中?. 10.成功安装完毕:

出现错误的情况往往是用户名或密码错误,或者系统用户名已存在,服务启动不起来,安装之前请仔细检查。

还有个问题就是在我们正确安装成功之后,我们在启动PostgeSQL时,输入密码进去弹出一个错误信息:写入日志错误,找不到路径C:\\Documents and

Settings\\Administrator\\Application Data\\下postgresql文件夹里面的文件pgpass.conf.这时我们可以手动在路径C:\\Documents and

Settings\\Administrator\\Application Data\\下面创建一个postgresql的文件夹,在里面新建一个记事本重命名为pgpass.conf,不用写入内容,接着启动Postgre的时候,它就会找到相应的文件,不会报错.

注:启动PostgreSQL程序时请确认Postgresql系统服务是否启动,没启动的话不能登陆进去,一般安装之后我们都会把Postgresql的系统服务设置为手动,那样不会每次开机都自行启动.设置的方法是开始--设置--控制面板--管理工具--服务,找到Postgresql的服务PostgreSQL Database Server 8.2右击选择属性,启动类型设为手动,点应用就OK了.那每次启动postgresql的时候都要在postgrsql程序组中选择Start service先启动该服务,当然也可以到服务里面去启动.

下面是引用网上的一篇关于PostgreSQL的:

支持的系统平台

1.1) PostgreSQL可以运行在哪些Windows版本上?

PostgreSQL可运行在Windows 2000/XP/2003上,截止本文档完成时,主要是在32位的Windows版本上进行了测试。

1.2) 我听说PostgreSQL可以在Windows NT4平台下运行,是这样吗?

虽然官方未表示支持,事实上PostgreSQL可以运行在Windows NT4系统上,但存在以下一些小问题:

安装程序不能正常运行,你需要自已手动编译并安装PostgreSQL。

PostgreSQL利用NTFS文件系统中的一项”多分点(reparse points)”功能来完成表空间功能,”多分点”功能不能在NT4下使用,因此PostgreSQL的表空间功能自然也不能使用。

在NT4下没有”runas.exe”程序,因此以管理员帐号来启动PostgreSQL非常困验。

另外要说明的是,在Windows NT4下,我们对PostgreSQL系统所作的测试较少。

1.3) PostgreSQL可以运行在Windows 95/98/ME平台下吗?

PostgreSQL所必需的一些操作系统功能在这些操作系统下不存在,因此不能运行。如果你一定要在这些操作系统下运行PostgreSQL,你可以使用Cygwin模拟环境版本,该版本提供Win9X平台下的基本支持。

安装

2.1) 在Windows上安装PostgreSQL需要做些什么?

在Windows上安装PostgreSQL最简单的方法是从PostgreSQL的FTP站点或镜像站点下载Windows版本的安装程序,这个安装程序可以(采用默认或定制方式)在Windows上安装一个已编译好的PostgreSQL数据库软件、pgAdmin(一个图形界面的管理程序)、可选择的提供额外功能的附加模块、可选择的过程语言。 为了能够使用这个安装程序,你的计算机需要运行Windows 2000/XP/2003,同时系统的安装服务(Windows Installer)应已启用,安装程序会根据需要来创建一个(用于启动postmaster的)服务帐号,同时初始化数据库。

安装程序可从http://www.postgresql.org/ftp/binary/v8.2.4/win32/下载。 2.2) 自已从源代码编译PostgreSQL该怎么做?

在Windows下从源代码编译PostgreSQL的常见问题FAQ在

http://www.postgresql.org/files/documentation/faqs/FAQ_MINGW.html里有编译过程的详细细节。

2.3) 为何运行PostgreSQL需要一个非管理员帐号? 当黑客利用一个软件的BUG进入一台计算机时,他就获得了这个软件运行所使用的用户帐号的权限。目前我们不知道PostgreSQL是否有这样的BUG,我们坚持使用非管理员帐号运行PostgreSQL的目的就是为了减少(万一)黑客利用在PostgreSQL发现的BUG可能对系统造成的损害。

在UNIX的世界中,(不使用管理员帐号进入系统)这已是一个常见的习惯了,在Windows世界中,微软和其他软件供应商们为了提高系统的安全性,也开始逐渐将这一操作变成标准习惯。

2.4) 可以将PostgreSQL安装在FAT分区吗? PostgreSQL首要任务是要保证数据的完整性。FAT和FAT32文件系统不能提供这样的可靠性保障,而且FAT文件系统缺乏安全性保障,使得保护原始数据无法保证不被未经授权的更改。最后,PostgreSQL使用一项”多分点”的功能来完成表空间功能,这一特性在FAT文件系统下也是无法实现的。

NTFS文件系统是一个日志文件系统,提供了好得多的可靠性和恢复功能,而且它有较全面的访问控制功能,并提供PostgreSQL要用到的多分点功能。 基本上述原因,PostgreSQL安装程序只能在NTFS分区中完成数据库的初始化工作,而PostgreSQL服务器程序自身和一些工具程序可以安装在任何分区中。

然而也要看到,在一些系统中,特别是开发人员的电脑上,也许只有一种FAT分区,在这种情况下,你可以象正常情况下一样安装PostgreSQL,但不要进行数据库的初始化工作,在安装完成后,在FAT分区上手动执行initdb.exe程序,但安全性和可靠性就不能保证了,并且建立表空间也会失败。

2.5) PostgreSQL需要什么样的文件系统权限?

PostgreSQL的运行帐号需要对PostgreSQL安装目录下及所有子目录具有读权限,同时只需要对数据目录具有写权限,特别是这个帐号不应具有对含有二进制程序文件的目录除了读权限以外的任何权限(所有安装目录下的目录权限,安装程序均会自动设置好,所以除非你想改变什么设置,一般情况下,安装后没有任何权限设置问题)。

PostgreSQL还需要对系统DLL文件(如kernel32.dll和user32.dll以及其他DLL文件)具有读权限, 默认这些权限是已分配的,但对CMD.exe程序的执行,在某些情况下,会被锁定,需额外分配此权限。

如果你在一个多用户系统中运行PostgreSQL,你应该移除非管理员对

PostgreSQL目录的操作权限,用户永远不需要处理PostgreSQL文件的权限,所有的通讯都是通过libpq连接来完成,直接存取PostgreSQL数据文件会导致数据不安全和系统的不稳定!

2.6) 为什么我不能选择Unicode编码?

[注意]在PostgreSQL 8.1版本中,(UT UNICODE编码在Windows平台上是完全支持的。这个条目是仅仅针对8.0版本而言的。

对于PostgreSQL而言,”UNICODE”等价于”UTF8″。Windows平台上的

PostgreSQL 8.0版本对UTF8的支持是不完整的,因此不能使用。安装程序将允许你选择任何PostgreSQL和Windows同时支持的编码。

在pgsql-hackers邮件列表中,Aleksander Kmetec详细阐述了Unicode问题: 因为Postgres依赖于操作系统的一些字符串处理函数,所以操作系统需要支持数据库使用的编码。很不幸,Windows并不支持PG的某些服务端编码。 如果前面说的你不太明白,这里有一个简短的实际例子:对于一个UNICODE(即UTF8)数据库,你应当在运行initdb时使用一个兼容的locale,对我而言也就是:”sl_SI.utf8″(Linux)或”Slovenian_Slovenia.65001″(Windows)。[译者注]对于我们中国人来说则是:”zh_CN.utf8″(Linux)

或”Chinese_People’s Republic of China.65001″(Windows)。

虽然Windows下号称utf8的代码页(codepage)是65001,但实际上这并不是一个真正有效的代码页。相关文档最初位于

http://www.sharmahd.com/tm/codepages.html,不过很可惜,现在已经不存在

了。摘录内容如下:

“65000(UTF-7)和65001(UTF-8)只是伪代码页,它们并没有相应的NLS(本地语言支持)文件。这两个代码页的数字只能在调用WideCharToMultiByte()和MultiByteToWideChar() API时一起使用。”

这就意味着 UPPER(), LOWER(), ORDER BY 在UNICODE数据库上不能正确工作,甚至不能在运行initdb时使用65001代码页。虽然小小的改变一下initdb可以允许我将LC_COLLATE设为”Slovenian_Slovenia.65001″,但是排序的结果仍然是一团糟。原因在前面的引用中已经解释了。

经过检查,我得到了Windows下的PG实际支持但并未公开的编码列表: UTF8 EUC_CN EUC_TW

LATIN6 (ISO 8859-10/ECMA 144) LATIN7 (ISO 8859-13) LATIN8 (ISO 8859-14)

LATIN10 (ISO 8859-16/ASRO SR 14111)

2.7) 我在安装时选择了一个非英文的语言,但所有的信息仍显示为英文! 在安装时选择的语言只是选择了安装程序的语言,要改变提示信息的语言, 首先确认你已安装了自然语言支持(Natural language support)特性,然后编辑postgresql.conf文件来改变lc_messages参数的值来选择你想要的语言。

2 [译者添加]如何使用免安装版本完全手动安装?

以 Windows XP SP2 默认环境进行手动安装为例,其他版本未经测试。 首先下载postgresql-8.1.4-1-binaries-no-installer.zip,假设解压后的目录是:D:\\GreenAPP\\pgsql(下面使用”$PG”表示该目录)。

在”$PG”目录下创建一个rootpass.txt文件,内容为数据库的超级用户密码。 准备工作到此结束,下面的步骤以管理员身份执行。 移动DLL文件[8.1.5及以上版本不需要这一步骤]: cd $PG

move /y lib\\comerr32.dll bin\\ move /y lib\\krb5_32.dll bin\\ move /y lib\\libeay32.dll bin\\ move /y lib\\libiconv-2.dll bin\\ move /y lib\\libintl-2.dll bin\\ move /y lib\\libpq.dll bin\\

move /y lib\\pthreadGC2.dll bin\\ move /y lib\\ssleay32.dll bin\\

添加新的postgres用户,并将密码设为:p

net user postgres p /ADD /EXPIRES:NEVER /PASSWORDCHG:NO net localgroup users postgres /delete 创建data目录并设置访问权限:

md data

cacls . /T /E /P postgres:R cacls data /T /E /P postgres:C

初始化PostgreSQL数据库,切换用户时需要手动输入postgres用户的密码:p runas /noprofile /env /user:postgres “bin\\initdb -D data -E EUC_CN –locale=\\”Chinese_People’s Republic of China.936\\” -A md5 -U root –pwfile=rootpass.txt”

这样就安装好了。需要说明的是数据库默认编码为:EUC_CN(GB2312),区域设置为:zh_CN.GBK,数据库超级用户名为:root,密码为rootpass.txt文件内容,使用md5认证。 以后可以使用:

runas /noprofile /env /user:postgres “$PG\\bin\\pg_ctl start -w -D $PG\\data”启动PG,使用:

$PG\\bin\\pg_ctl stop -D $PG\\data -m smart关闭PG。

常见的安装错误

3.1) PostgreSQL与/或其安装程序在启动时崩溃、不能正常启动或是启动后挂起

目前这一现象最主要的原因是防病毒软件和防火墙软件造成的。如果你的电脑上安装有防火墙软件,可以试着禁用它或是卸载它。如果你的电脑上安装有防病毒软件,你也必须禁止它对PostgreSQL使用目录进行监控,如果这样还不能起作用,也许需要完全地从你的电脑中卸载它。

有一些关于nod32防病毒产品的特例情况,如果你使用这个产品,在其高级选项中,将”postmaster.exe”加入到它不处理程序列表中去(在”高级选项”中),这样就可以解决这个问题。

也有一些关于Mcafee和Panda防病毒软件以及NetLimiter网络监控软件的特例情况报告,由于一些人能够使PostgreSQL与这些软件共同工作,因此对那些PostgreSQL与这些软件不能正常运行的情况没有特殊的或是推荐的方案,问题表现出安装有一定的特殊性,有时需要卸载或重新安装。

另外还有一个问题就是如果你安装了Cygwin,并且cygwin\\bin目录在系统的环境变量PATH(搜索路径)中,在cygin目录下有一些与解释型语言(TCL, perl, python)相关的DLL文件可能含有BUG会导致安装程序或是安装好的PostgreSQL运行时挂起或崩溃,只要在运行安装程序前将cygwin\\bin从系统路径中删除即

可!

3.2) 安装程序声称指定的帐号是管理员帐号,但(你认为)不是! 最大可能是你所指定的帐号是一个管理员帐号或是Power用户组帐号,但是你还未意识到这一点。安装程序会特别针对管理员组和Power用户组的成员进行检查。按照你原来的方法使用本地用户和工作组再操作一次 — 打开管理员工作组,看一下有哪些成员。然后检查任何属于管理员级别的工作组(域中或本地组),同时也检查这些组的成员。 PostgreSQL可以对嵌套的工作组设置进行深入的检查。

3.3) 我收到一个类似”the user has not been granted the requested logon type at this computer(用户没有被分配必需的登录权限)”的错误信息

首先确认所指定的PostgreSQL帐号有”作为服务程序登录”和”本地登录”的权限,”本地登录”的权限只是在安装时需要,安装完成后可以根据安全策略的需要删除此权限(权限的分配和删除可进入MMC(管理控制台)程序的”本地安全策略”的子栏目,”本地登录”的权限是默认的,”作为服务程序登录”的权限正常情况下是由安装程序分配的)。

如果仍然存在此问题,打开”审核允许”权限(也在”本地安全策略”的子栏目中),同时也请通知我们在这种情况下还需要什么权限。

注意,如果你的计算机是”域”中的成员,你的安全策略设置也许是在域服务器上使用工作组安全策略来设定的。

3.4) 在安装/运行initdb时,我收到一个权限错误信息

确认PostgreSQL的运行帐号对安装的PostgreSQL目录具有(合适的)权限。安装程序会设置安装目录的权限,但并不设置其父目录的权限。详见问题 2.5可浏览所必须的权限信息。

3.5) 我收到一个错误信息显示PostgreSQL不能从一个终端服务(Terminal Services)会话中进行安装

很不幸,确实是这样。PostgreSQL的后台程序不能够从终端服务会话中运行,为了能够初始化数据库,安装程序需要启动一个独立的后台进程,因此安装程序需要从控制台中启动。如果你使用的是Windows Server 2003,你可以获取对真正控制台的远程存取权限, 为了做到这一点,可以通过执行mstsc /console命令来启动远程桌面连接,这会锁定服务器上的本地控制台而给你完全的控制权,在这种情况下,PostgreSQL的安装没有问题。

3.6) 安装时我改变了目录,但PostgreSQL还是安装在默认目录中

首先确认你更改了根目录的内容, PostgreSQL安装程序允许更改每一个模块的目录,如果你更改了根目录(”PostgreSQL”),其他的子模块(如Database Server)将自动继承根目录的值作为缺省值,但是如果你只是更改了子模块的目录,系统还是会安装在缺省的目录。

3.7) 在升级安装时,安装程序说我没有权限安装一个服务,但我是以管理员登

录的

解决之道是首先卸载先前的版本,这并不会删除你的数据,然后确保将新版本安装到同一目录中,就可以解决这个问题了。需要注意的是这个方法仅仅适用于小的版本升级(如:8.0.1→8.0.2),因为它们不需要转储/重载(dump/reload)。

3 我收到一个错误说安装包无法打开 可能有两个原因。最可能的原因是你直接在ZIP文件中双击MSI所致,你必须将ZIP完全解压到一个临时目录中以后在运行MSI文件。另一个原因是你下载的文件已经被损坏了,可以尝试从另一个不同的镜像站点重新下载来解决问题。 常见的运行时错误

4.1) 我在安装一个过程语言时收到”dynamic load error”错误

大多数情况下这表示与某个过程语言相关的DLL文件丢失,PostgreSQL的DLL文件只包含了该语言的绑定,还需要该过程语言自身的DLL文件存在于系统的环境变量PATH(搜索路径)中。不同的过程语言需要的不同的DLL文件,详情可参见安装指南。

为了找出具体哪一个DLL文件丢失,你可以使用来自微软的依赖性检查工具,它在微软的支持软件工具包中,在一个单独的安装光盘上,只要运行了 depends plpython.dll (对PL/python语言来说)就可以显示出哪一个DLL文件不存在了。 4.2) 虽然我只启动了一次服务但却发现有很多postgres.exe进程

这是正常情况。PostgreSQL使用多进程体系结构,在一个无用户连接的空系统中会有2至5个进程,一旦用户开始连接服务器,PostgreSQL的进程数就会增加。

类别:postgresql数据库 | 添加到搜藏 | 分享到i贴吧 | 浏览(2661) | 评论 (0)

下一篇:Postgresql. 数据类型

相关文章:

Windows下安装PostgreSQL8.2图Windows下安装PostgreSQL8.2图? ? 解... 解...

最近读者:

登录后,您就 出现

在这里。

本文来源:https://www.bwwdw.com/article/yaxo.html

Top