【发布时间】:2018-09-21 19:30:59
【问题描述】:
错误:无效的语言环境名称:“en_US.utf-8”
使用 PostgreSQL 10 运行 Ubuntu 服务器 18.04 Beta 2。
在运行适用于 9.5 的数据库创建脚本时,我现在发现将“en_US.UTF-8”作为语言环境存在问题:
CREATE DATABASE db WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8';
我知道这可能是多余的,因为我理解默认值为“en_US.etf-8”。删除 LC_COLLATE 和 LC_CTYPE 参数让我可以运行我的脚本。
那么对于 V 10,语言环境定义是否发生了某种变化?还是现在发生了其他事情?我在 Postgres 10 手册中找不到任何相关内容。
【问题讨论】:
-
请准确的错误。它看起来更像是 ubuntu 问题,但首先 - 分享确切的错误
-
错误是 ERROR: invalid locale name: "en_US.utf-8"
-
我已经验证我得到了 LC_COLLATE 和 LC_CTYPE 独立的相同错误(通过单独指定每个)。我注意到 18.04 中的“语言环境”响应表明了 C.UTF-8 的设置。所以也许这是某种类型的冲突?在 SQL 脚本中使用 C.UTF-8 会触发相同的错误 'invalid locale name'。
-
当我创建数据库(没有语言环境规范)并进入交互式 psql 提示符时,\echo
$LC_CTYPE(带有刻度引号)返回一个空白。不确定在没有规范的情况下如何实际处理排序排序规则。 -
检查可用的语言环境?..
locale -a如果找不到,请尝试locale-gen en_US.UTF-8
标签: postgresql