在Ubuntu环境中使用apt-get 安装postgresql很方便,但也少了些关键的配置,如排序规则locale,lc_collate,lc_ctype,默认安装时这些都被设置为en_US.UTF-8,在处理中文字的排序时,无法得到正确的顺序,需要将资料库的排序顺序改为zh_CN.UTF-8,但资料库创建后是不允许修改这个属性的。
postgresql的create database指令实际上是从template1复制过来的,所以可以将template1的排序规则设定正确了,后续在报建资料库时就自动了。
要修改template1的排序,只能通过initdb重新初始化资料库族来达到,注意,此功能会删除原有资料库,注意备份。
1. 删除默认的资料库目录,然后重建
sudo su postgresql
service postgresql stop
cd /var/lib/postgresql/9.3
rm -rf main
mkdir main
2.通过initdb初始化资料库族
/usr/lib/postgresql/9.3/bin/initdb --locale=zh_CN.UTF-8 -D main
3.启动资料库服务
service postgresql start
完成