答案:亂碼因字符集不一致,需統(tǒng)一客戶端、連接、服務(wù)器、數(shù)據(jù)庫及終端字符集為utf8mb4。1. 用SHOW VARIABLES檢查character_set和collation設(shè)置;2. 執(zhí)行SET NAMES utf8mb4臨時(shí)修復(fù);3. 在my.cnf/my.ini的[client]和[mysqld]中配置默認(rèn)字符集;4. 用ALTER DATABASE/TABLE修改庫表字符集;5. 確保終端支持UTF-8,如設(shè)置LANG或chcp 65001;重啟MySQL生效。
命令行下 MySQL 出現(xiàn)亂碼,通常是由于字符集設(shè)置不一致導(dǎo)致的。要解決這個(gè)問題,需要確??蛻舳?、連接、服務(wù)器和數(shù)據(jù)庫表的字符集統(tǒng)一為 UTF8 或 utf8mb4。以下是具體排查和解決方法:
SHOW VARIABLES LIKE 'character_set_%';<br>SHOW VARIABLES LIKE 'collation_%';
utf8
或 utf8mb4
,就可能出現(xiàn)亂碼。
SET NAMES utf8mb4;
SET character_set_client = utf8mb4;<br>SET character_set_connection = utf8mb4;<br>SET character_set_results = utf8mb4;
/etc/mysql/my.cnf
或 /etc/my.cnf
my.ini
[client]
和 [mysqld]
段落中添加以下內(nèi)容:
[client]<br>default-character-set = utf8mb4<br><br>[mysqld]<br>character-set-server = utf8mb4<br>collation-server = utf8mb4_unicode_ci<br>skip-character-set-client-handshake
skip-character-set-client-handshake
可避免客戶端覆蓋設(shè)置。
ALTER DATABASE 數(shù)據(jù)庫名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;<br>ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
utf8mb4
,支持完整的 UTF-8(包括 emoji)。
LANG
設(shè)置正確,如 utf8mb4
0 或 utf8mb4
1utf8mb4
2 切換為 UTF-8 編碼
基本上就這些。關(guān)鍵是讓客戶端、連接、服務(wù)器、數(shù)據(jù)庫和終端的編碼保持一致,推薦統(tǒng)一使用 utf8mb4。改完配置記得重啟 MySQL 服務(wù)。
以上就是命令行mysql亂碼怎么解決的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)