# LC_ALL: cannot change locale (en_US.UTF-8) 报错

- Link: https://yjyj.net/learn/7631.html
- Published: 2025-04-23T13:17:35+08:00
- Author: 小 虾

⚡ 生猛大蝦编辑部 · 30 秒核心看点

 * 宝塔装 MySQL 时卡在 locale 报错，根因通常是系统缺少 en_US.UTF-8 本地化定义。
 * 直接执行 sudo localedef -i en_US -f UTF-8 en_US.UTF-8，可快速补齐 locale 并继续
   安装。
 * 这类问题多见于精简系统或新机器初始化，先查 locale 再动手最省时间。

最近给公司的业务搭一个 Matomo, 顺手收了台 OVH GRA 的盲盒中奖款. 但是宝塔部署 Mysql
的时候本地 locale 报错无法安装.
提示:

    ```wp-block-code
    /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) [ 0%] Built target gtest make: *** [Makefile:166: all] Error 2
    ```

搜了下得到有效的解决办法:

    ```wp-block-code
    sudo localedef -i en_US -f UTF-8 en_US.UTF-8
    ```

记录一下, 仅供参考

相关参考:
https://www.cnblogs.com/Don/p/17560564.htmlhttps://www.cnblogs.com/wn1m/
p/10837609.html

📌 生猛大蝦编辑部 · 背景与实操延伸

这类报错本质上不是 MySQL 本身坏了，而是系统语言环境没配齐。很多云服务器、精简镜像
或刚初始化的机器，默认只带最小化 locale，编译安装时就容易踩坑。实操上先别急着重装，
优先检查 locale、LANG 和 LC_ALL 的值，再用 localedef 补齐目标语言环境。修复后若仍
报错，通常是当前会话未刷新环境，重新登录一次最稳。

❓ 延伸问答与排错指南（FAQ）

LC_ALL: cannot change locale 怎么修复？

先确认系统是否缺少对应 locale。本文给出的有效做法是执行 sudo localedef -i en_US -
f UTF-8 en_US.UTF-8，生成 en_US.UTF-8 本地化环境后，再重新执行安装或编译流程，通常
即可恢复。

安装 MySQL 时为什么会报 setlocale 警告？

这是系统本地化配置不完整引起的，常见于精简安装或新服务器。程序尝试切换到 en_US.UTF-
8，但系统里没有对应 locale，就会出现 warning 并可能导致后续构建失败。

执行 localedef 前后还要检查什么？

建议先查看当前 locale 状态，确认是否已有 en_US.UTF-8；执行 localedef 后再重新登录
或重新加载环境变量，避免终端仍沿用旧配置。若是脚本安装，最好把 locale 修复放在前
置步骤。

📚 【[招数学习](https://yjyj.net/category/learn)】专栏延伸阅读与热门精选（[全站文章归档](https://yjyj.net/archive)）：

 * [用 .htaccess 和 .htpasswd 加固 Wordpress 后台](https://yjyj.net/learn/7620.html)
 * [macOS 禁止 OneDriver 自动更新](https://yjyj.net/learn/7599.html)
 * [Matomo 配置数据库优化](https://yjyj.net/learn/7715.html)
 * [1Panel 部署 N8N 简单配置](https://yjyj.net/learn/n8n/7740.html)
 * 热门必读[京东云路由器雅典娜 AX6600 折腾记](https://yjyj.net/learn/7810.html)
 * 热门必读[斐讯R1升级固件，音质终于得以提升了](https://yjyj.net/learn/5984.html)
