MacOS下PostgreSQL指定nb_NO.UTF-8 locale建库报错及解决问询
解决MacOS上PostgreSQL创建数据库时的
nb_NO.UTF-8 locale错误 我之前也遇到过这个问题,MacOS确实没有Linux上的locale-gen命令,但我们可以用系统自带的localedef工具来生成需要的locale,具体步骤如下:
1. 检查系统已支持的locale
首先打开终端,确认你的Mac上有没有现成的挪威语UTF-8 locale:
locale -a
在输出里查找nb_NO.UTF-8或nb_NO相关的条目。如果找不到,就需要手动生成。
2. 用localedef生成目标locale
执行以下命令(需要管理员权限,输入你的用户密码即可):
sudo localedef -i nb_NO -f UTF-8 nb_NO.UTF-8
这个命令的参数含义:
-i nb_NO:指定使用书面挪威语的locale定义-f UTF-8:指定编码格式为UTF-8- 末尾的
nb_NO.UTF-8是生成的locale名称,和你PostgreSQL命令中需要的完全匹配
3. 验证生成结果
再次执行locale -a,如果输出里出现了nb_NO.UTF-8,说明生成成功。
4. 重新执行PostgreSQL创建命令
现在回到PostgreSQL,重新运行你的创建数据库脚本:
CREATE DATABASE test OWNER dba TEMPLATE template0 ENCODING 'UTF-8' LC_COLLATE 'nb_NO.UTF-8' LC_CTYPE 'nb_NO.UTF-8';
这次应该就能顺利创建数据库了。
如果临时不需要严格的挪威语排序规则,也可以用MacOS自带的C.UTF-8替代,但如果必须遵循挪威语的字符处理规则,上面的方法是最直接的解决方案。
内容的提问来源于stack exchange,提问作者Cosmin_Victor
相关产品推荐
相关产品推荐

