z7369 发表于 2016-11-21 09:37:15

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。
页: [1]
查看完整版本: PostgreSQL 8.4安装过程中的问题