PostgreSQL 13.2修改lc_time参数报错求助
解决PostgreSQL 13.2修改lc_time参数失败的问题
出现ERROR: invalid value for parameter "lc_time": "ru_RU"报错,核心原因是系统未安装或PostgreSQL无法识别指定的locale值,以下是具体解决步骤:
1. 确认系统/PostgreSQL支持的locale
Linux/Unix系统
执行系统命令查看已安装的locale:
locale -a
查找输出中是否存在ru_RU.utf8、fr_FR.utf8这类带编码后缀的完整locale名称(PostgreSQL通常要求指定编码,仅写ru_RU可能不被识别)。
通用跨系统方法
在psql中执行查询,查看PostgreSQL可用的关联locale的排序规则:
SELECT collname, collprovider FROM pg_collation WHERE collname LIKE '%ru%' OR collname LIKE '%fr%';
从中找到对应的time locale名称。
2. 安装缺失的locale(若步骤1未找到目标locale)
Debian/Ubuntu系列
sudo locale-gen ru_RU.UTF-8 sudo update-locale
RHEL/CentOS系列
sudo localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
Windows系统
- 打开「控制面板」→「区域」→「管理」→「更改系统区域设置」,添加并启用俄语/法语语言包
- 重启PostgreSQL服务
3. 正确设置lc_time参数
使用步骤1中确认的完整locale名称执行设置:
SET lc_time = 'ru_RU.UTF-8'; -- 法语对应设置 SELECT set_config('lc_time', 'fr_FR.UTF-8', true);
若需永久生效,编辑postgresql.conf文件,修改:
lc_time = 'ru_RU.UTF-8'
保存后重启PostgreSQL服务。
内容的提问来源于stack exchange,提问作者e1s
相关产品推荐
相关产品推荐

