You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL区域设置修改:正确操作步骤及是否需重新安装?

PostgreSQL区域设置修改及升级错误解决

一、修改区域设置的正确操作

不需要回退重装PostgreSQL 10,正确操作步骤如下:

  • 备份现有数据:先对PostgreSQL 15集群做全量备份,避免数据丢失,执行命令:
    pg_dumpall -f /自定义路径/backup.sql
    
  • 停止并删除现有15集群:若集群名为main,执行:
    sudo pg_dropcluster --stop 15 main
    
  • 配置系统区域设置:
    1. 安装目标区域包(以zh_CN.UTF-8为例,替换为你需要的区域):
      sudo locale-gen zh_CN.UTF-8
      
    2. 编辑/etc/default/locale文件,写入以下内容(替换为目标区域):
      LANG=zh_CN.UTF-8
      LC_ALL=zh_CN.UTF-8
      LC_CTYPE=zh_CN.UTF-8
      
    3. 重启系统或执行source /etc/default/locale使设置生效。
  • 用新区域创建15集群:
    sudo pg_createcluster --locale zh_CN.UTF-8 15 main
    
  • 恢复备份数据:切换至postgres用户后执行:
    psql -d postgres -f /自定义路径/backup.sql
    

二、升级时的错误解决

你遇到的pg_upgradecluster错误,核心是系统区域配置不规范:LC_CTYPE被设为UTF-8,这不是完整的区域名称,必须使用en_US.UTF-8这类带语言、国家编码的完整格式。解决步骤:

  • 安装对应完整区域包:
    sudo locale-gen en_US.UTF-8
    
  • 修正环境变量:
    1. 临时生效:
      export LC_CTYPE=en_US.UTF-8
      export LANG=en_US.UTF-8
      
    2. 永久生效:编辑/etc/default/locale,确保内容为:
      LANG=en_US.UTF-8
      LC_ALL=en_US.UTF-8
      LC_CTYPE=en_US.UTF-8
      
  • 重新执行升级命令:
    sudo pg_upgradecluster 10 main
    

补充说明

PostgreSQL的区域设置是集群创建时确定的,一旦创建完成无法直接修改,因此更换区域只能通过「备份-删旧集群-建新集群-恢复数据」的流程操作,无需回退到旧版本。

内容的提问来源于stack exchange,提问作者Karlean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:06:07