Redis无法启动, “Failed to configure LOCALE for invalid locale name”

今天宝塔安装了Redis,编辑了一下监听IP,突然就无法启动了

查看日志-应用日志-redis后发现报错是

4181681:C 12 Aug 2025 16:12:30.227 * Redis version=7.4.5, bits=64, commit=00000000, modified=1, pid=4181681, just started 4181681:C 12 Aug 2025 16:12:30.227 * Configuration loaded 4181681:M 12 Aug 2025 16:12:30.227 # Failed to configure LOCALE for invalid locale name.

Debian系统的解决方案

sudo apt update && sudo apt install -y locales

生成 en_US.UTF-8 区域

编辑区域配置文件 /etc/locale.gen,取消注释 en_US.UTF-8 行(用 nano 或 vim):

sudo nano /etc/locale.gen

找到以下行(可能被注释,以 # 开头):

# en_US.UTF-8 UTF-8

删除行首的 # 以启用

en_US.UTF-8 UTF-8

保存并退出(nano 按 Ctrl+O 保存,Ctrl+X 退出)。

执行区域生成命令

sudo locale-gen

这会根据 /etc/locale.gen 生成所有启用的区域,包括 en_US.UTF-8

步骤 2:设置系统默认区域

通过 update-locale 命令设置全局默认区域(影响所有用户):

sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8

此命令会自动更新 /etc/default/locale 文件,确保环境变量持久化。

步骤 3:验证区域设置生效

重新加载环境变量(或重启终端),再次运行 locale 检查:

source /etc/default/locale # 立即生效 locale

输出应显示 LC_ALL=en_US.UTF-8 且无警告,类似:

LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" ... LC_ALL=en_US.UTF-8

步骤 4:重启 Redis 服务

 

 

Centos stream 9/AlmaLinux 9/RockyLinux 9系统的解决方案

  • 检查当前语言环境设置 运行以下命令查看系统当前的语言环境设置:

    locale

    这将显示当前的语言环境变量(如 LANG、LC_ALL、LC_CTYPE)。检查是否有无效或未安装的语言环境设置,例如 en_US.UTF-8。

    示例输出:

    LANG=en_US.UTF-8
    LC_CTYPE=”en_US.UTF-8″
    LC_NUMERIC=”en_US.UTF-8″

    如果看到类似 locale: Cannot set LC_ALL to default locale 的警告,说明语言环境配置有问题。

  • 列出可用语言环境 使用以下命令检查系统中已安装的语言环境:

    locale -a

    确认 en_US.UTF-8 或其他需要的语言环境是否存在。如果不存在,需要安装。

  • 安装缺失的语言环境 如果所需的语言环境(如 en_US.UTF-8)未安装,可以通过以下步骤安装:

    sudo dnf install glibc-langpack-en

    安装完成后,重新运行 locale -a 确认语言环境已添加。

  • 设置正确的语言环境 编辑 /etc/locale.conf 或用户的 shell 配置文件(如 ~/.bashrc),确保语言环境变量正确。例如:

    echo “LANG=en_US.UTF-8” | sudo tee /etc/locale.conf
    echo “LC_ALL=en_US.UTF-8” >> ~/.bashrc
    source ~/.bashrc
  • 检查 Redis 配置文件 打开 Redis 配置文件(通常位于 /etc/redis.conf 或 /etc/redis/redis.conf),查找是否有与语言环境相关的设置。确保没有指定无效的 LC_* 环境变量。如果有问题,可以注释掉相关行或设置正确的语言环境。

  • 以正确环境启动 Redis 尝试手动指定语言环境启动 Redis:

    LANG=en_US.UTF-8 redis-server /etc/redis.conf

    如果成功,说明问题出在系统默认环境变量。

  • 检查 systemd 服务配置 如果通过 systemd 启动 Redis(如 sudo systemctl start redis),检查服务文件:

    sudo systemctl cat redis

    确保 [Service] 部分没有设置无效的 Environment= 变量。如果有问题,编辑服务文件:

    sudo systemctl edit redis

    添加或修改:

    [Service]
    Environment=”LANG=en_US.UTF-8″
  • 重启 Redis 服务 修改完成后,重新加载 systemd 配置并重启 Redis:

    sudo systemctl daemon-reload
    sudo systemctl restart redis
  • 验证 Redis 运行状态 检查 Redis 是否正常运行:

    sudo systemctl status redis

    或使用 Redis CLI:

    redis-cli ping

    如果返回 PONG,说明 Redis 已正常启动。

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇