在简体windows中文系统下安装后不能直接初始化pg数据目录,需要手工进行初始化。
首先需要设置pg的变量环境,包括
pg安装目录
PGHOME= C:/Program Files/PostgreSQL/8.4
数据库目录
PGDATA= D:/PostgreSQL/8.4/data
程序库目录
PGLIB= %PGHOME%/lib
初始化的主机
PGHOST= localhost
pg执行命令目录
Path= %Path%;%PGHOME%/bin
完成上面设置后使用postgres用户身份运行pg的数据库初始化命令initdb。
runas /noprofile /user:postgres cmd.exe
上面命令打开一个以postgres身份运行的终端,在这个终端下运行
initdb --encode=utf8 --locale="Chinese, zh_CN"
即可完成初始化。
要说一下的是--locale参数,--encode参数就不多说了,感兴趣可以看下本博相关文章。
locale是指定pg使用的字符集及查找方式。
如果locale指定的语言被pg全文搜索引擎支持的话,就可以使用强大的全文搜索功能,否则只能使用'simple'方式进行搜索。支持全文搜索的言语有:
"danish"
"dutch"
"english"
"finnish"
"french"
"german"
"hungarian"
"italian"
"norwegian"
"portuguese"
"romanian"
"russian"
"spanish"
"swedish"
"turkish"
很不幸,包括中文在内的双字节文字都不在其中。
--locale在指定中文时,关键的是前面的"Chinese,",后面的内容可以任意自定,不会对pg发生任何影响。为了更方便区分所使用的字符集可以在后面加上一些识别,如Tranditional表示繁体中文、Simplified表示简体中文。但这样区分或许不够清晰,可以分地区进行设置,如zh_TW表示台湾区繁体中文、zh_HK香港区繁体中文、zh_CN大陆地区简体中文、zh_SG新加坡简体中文。