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

本文记录在宝塔部署 MySQL 时遇到的 locale 报错:/bin/sh 提示无法切换到 en_US.UT…


生猛大蝦 - cool geometric triangular figure neon laser light great backgrounds wallpapers

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

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

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

sudo localedef -i en_US -f UTF-8 en_US.UTF-8

记录一下, 仅供参考

相关参考:
https://www.cnblogs.com/Don/p/17560564.html
https://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 修复放在前置步骤。