PostgreSQL 8.4安装过程中的问题

这几天安装postgresql,用enterpriseDB的PostgreSQL8.4.3和PostgreSQL Plus standard安装程序,在安装时总是报无法启动数据库的错误。
经检查发现postgres账号也已经建立,PostgreSQL服务也已安装上,程序目录貌似都是完整的,唯独数据库目录data里面空无一物。

而这正是数据库没有初始化所引起的。手动初始化数据库
命令行进入bin目录后运行
initdb.exe -D ..\data -E UTF8
报如下错误:
DETAIL:  The database was initialized with LC_COLLATE "Chinese_Peoples Republic of China.936",  which is not recognized by setlocale().
HINT:  Recreate the database with another locale or install the missing locale.
child process exited with exit code 1
initdb: removing data directory "../data"

原来是LC_COLLATE不能以"Chinese_Peoples Republic of China.936",即
不能中文中华人民共和国作为LC_COLLATE。运行PostgreSQL自带的getlocales.exe工具也证实了这个想法
..\installer\server\getlocales.exe
显示如下
...
ChinesexxCOMMAxxxxSPxxHongxxSPxxKongxxSPxxSxxDOTxxAxxDOTxxRxxDOTxx=Chinese, Hong Kong S.A.R.
ChinesexxCOMMAxxxxSPxxMacauxxSPxxSxxDOTxxAxxDOTxxRxxDOTxx=Chinese, Macau S.A.R.
ChinesexxCOMMAxxxxSPxxSingapore=Chinese, Singapore
ChinesexxCOMMAxxxxSPxxTaiwan=Chinese, Taiwan
...

意思就是只支持中文台湾,香港,新加坡都支持,就是不支持中文中华人名共和国 。

安装程序有点缺陷,安装时候locale选的是默认locale,既然该locale不支持,也应该出个框提示下我们这些新手吧吧。还有就是里面不能选以C(posix)作为locale。 如果各位是中文环境,就直接选English US作为locale吧。或者安装后手动初始化数据库

initdb.exe -D ..\data -E UTF8 --locale=C

 

安装adminpack.sql(用来支持pgAdminIII,如果不安装,每次进入数据库时,都会给个提示。觉得不需要可以不装)
psql -d postgres –f ../SHAREDIR/contrib/adminpack.sql
psql -d template1 –f ../SHAREDIR/contrib/adminpack.sql

 

附:纯手工安装步骤(从压缩包)(摘录自 PostgreSQL 中文站 )

1、PostgreSQL.zip解压至d:\postgresql后,创建一个data目录;
2、新开一个cmd窗口,并切换目录: cd d:\postgresql\bin ;
3、initdb -D ..\data -E UTF8 --locale=C
4、pg_ctl register -D ..\data -N"PostgreSQL Server 8.4" 即将postgres注册为服务,服务名为PostgreSQL Server 8.4;

以下为可选步骤了:

5、net start pgsql即可启动postgresql,进行后续工作了;
6、createdb -E UTF8 testdb,创建测试数据库
7、psql testdb 进入交互方式,直接操作数据库;

另上述第3步及6步为避免以后可能发生的亚州大字符集的乱码问题,统一使用UTF8。

posted on 2010-05-18 17:03  JesseFang  阅读(3234)  评论(0编辑  收藏  举报