将 PostgreSQL 9.4 升级到 9.5:LC_ALL 未设置

Eri*_*Ven 4 postgresql upgrade postgresql-9.4

我正在尝试将我的 PostgreSQL 9.4 数据库升级到 PostgreSQL 9.5,但每次运行时sudo pg_upgradecluster 9.4 main我都会收到此错误:

Stopping old cluster...
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US.UTF-8",
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Error: The locale requested by the environment is invalid.
Error: Could not create target cluster
Run Code Online (Sandbox Code Playgroud)

但是当我运行时,locale我看到LC_ALL实际设置了:

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

我记得在从 PostgreSQL 9.3 升级到 PostgreSQL 9.4 时遇到了同样的问题,但那一次我通过将此行添加到/etc/environment

LC_ALL=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

但这不再起作用了。

Eri*_*Ven 12

经过多次尝试解决此问题,此命令终于对我有用:

export LC_CTYPE=en_US.UTF-8 export LC_ALL=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)