連線出現 MySQL Connection Failed: Can't initialize character set charset_name,通常因客戶端不支援該字符集、或字符集定義檔缺失。本文分析三大原因與對應修復方案。
MySQL Connection Failed: Can't initialize character set charset_name
如 utf8mb4、gbk 等多位元字符集,舊版客戶端庫未編譯支援。
--with-charset=charset_name 或 --with-extra-charsets=charset_name--with-extra-character-sets=complex 支援所有多位元字符集)自訂或冷門字符集,伺服器端未內建,客戶端找不到 .conf 定義檔。
--character-sets-dir=/path/to/charsetsshare/charsets)應用程式連線字串指定的字符集與伺服器實際支援不符。
SHOW VARIABLES LIKE 'character_set%' 伺服器支援清單charset=utf8mb4)SET NAMES utf8mb4-- 1. 檢查伺服器支援字符集
SHOW CHARACTER SET;
-- 2. 檢查目前連線字符集
SHOW VARIABLES LIKE 'character_set%';
-- 3. 檢查字符集檔案位置
SHOW VARIABLES LIKE 'character_sets_dir';
utf8mb4(支援完整 Unicode,含 Emoji)charset=utf8mb4latin1 做中文儲存(會導致亂碼且難修復)