继续遇到新的问题:
研发反应,无法创建基于Utf8的数据库。
研究了一下,原来是因为Initdb过程中,没有手工指定locale参数,结果命令就自动从env中提取了zh作为默认的locale参数,与之相关的有lc_ctype和lc_collate两项参数等于zh。这样的情况下,数据库为了避免编码匹配带来的问题,就不允许创建基于utf8的数据库了,只能创建基于euc_cn的数据库。
因为是空的数据库集群,就删除了创建的da
再次重新创建da
总结:
initdb -D /path/to/da
create -E utf8 databasename
数据库集群中,模板非常重要,每次创建一个库,都要copy模板中众多的参数过去,所以创建模板要注意。基于postgis的模板也是同样的道理。
另外,还有两个参数lc_message='C'和lc_monetary='C',也是可以在initdb过程中手工设置的,若不写,则缺省提取env的值。不过这两个参数可以后期修改/data/postgres.conf文件,后重启数据库集群,来调整。暂时不明白有什么深刻的影响。