问题:postgresql initdb出了什么问题?为什么UTF-8编码没有得到强制执行?

我正在使用 PostgreSQL 9.1。尝试默认强制执行 UTF8 编码。

这就是我正在做的事情。

service postgresql initdb -E 'UTF-8' --lc-collate='en_US.UTF-8' --lc-ctype=locale='en_US.UTF-8';

虽然初始化过程没有任何问题,

psql提示符处的\l提供了详细信息。

                         List of databases
   Name    |  Owner   |Encoding  | Collate | Ctype |   Access privileges   
-----------+----------+----------+---------+-------+-----------------------
  postgres | postgres | LATIN1 | en_US | en_US| 

为什么UTF-8编码没有得到强制执行?

解答

看起来您正在通过操作系统的运行级别脚本调用 initdb。此脚本可能不会传递参数。您最好尝试直接执行 initdb,您需要以 root 身份开始执行以下步骤,并假设数据库的操作系统用户帐户是 postgres。

mkdir <your data dir>
chown postgres <your data dir>
su postgres
initdb --pgdata=<your data dir> -E 'UTF-8' --lc-collate='en_US.UTF-8' --lc-ctype='en_US.UTF-8'
Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐