我正在尝试在Vagrant盒子上设置CartoDB,following the instructions here.但是,它一直在失败,因为它抱怨Postgres已经安装了Latin-1编码.
我无法理解为什么Postgres会这样做,因为我明确强制所有本地设置为UTF8.这是我一直在做的事情:
export LANGUAGE="en_US.UTF-8" export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" locale sudo apt-get update sudo apt-get install -y python-software-properties sudo add-apt-repository -y ppa:cartodb/gis sudo add-apt-repository -y ppa:mapnik/v2.1.0 sudo add-apt-repository -y ppa:cartodb/nodejs sudo add-apt-repository -y ppa:cartodb/redis sudo add-apt-repository -y ppa:cartodb/postgresql sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable sudo apt-get update sudo apt-get install -y make unp zip libgeos-c1 libgeos-dev gdal-bin libgdal1-dev libjson0 sudo apt-get install python-simplejson libjson0-dev proj-bin proj-data libproj-dev postgresql-9.1
LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8
在运行上述所有命令后,当我检查Postgres的状态时,似乎Postgres仍然使用Latin-1编码安装:
sudo -u postgres psql -l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+---------+-------+----------------------- postgres | postgres | LATIN1 | en_US | en_US | template0 | postgres | LATIN1 | en_US | en_US | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | LATIN1 | en_US | en_US | =c/postgres + | | | | | postgres=CTc/postgres
为什么会这样?如何强制Postgres使用UTF8编码安装自己?
这可能不是您正在寻找的答案,但这里有一些命令可用于将Postgresql切换到不同的语言环境(备份,重新创建集群和还原):
原文链接:https://www.f2er.com/postgresql/192850.htmlsudo -u postgres pg_dumpall > /tmp/postgres.sql sudo pg_dropcluster --stop 9.1 main sudo pg_createcluster --locale en_US.UTF-8 --start 9.1 main sudo -u postgres psql -f /tmp/postgres.sql
如果您想知道安装使用Latin的原因,那么您可能需要深入了解安装脚本.但是如果en_US.UTF-8不是您的默认系统区域设置,那可能就是问题所在.安装脚本可以加载/ etc / default / locale.