Mysql

更改 character_set_connection utf8mb4 mysql

  • January 28, 2022

我想更改 character_set_connection utf8mb4。它向我展示了utf8。我已經關注了這篇https://mathiasbynens.be/notes/mysql-utf8mb4文章並進行了更改


[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4



[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

同時觸發此查詢。

SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci

但是當我使用phpmyadmin檢查目前狀態時

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

結果

character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
collation_connection utf8_general_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci

我已經設置了更改表和數據庫

SET NAMES utf8mb4;  
ALTER DATABASE openfire CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;  
ALTER TABLE ofOffline CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 

這是我的連接字元串

jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true&useUnicode=true

MySQL 5.6.33 我已經簽入了 5.7.14 版本的 windows,這很好。請給我任何建議。提前致謝。

你用的是什麼客戶端?您需要指定連接將使用 utf8mb4。

桌子呢?如果您有現有的表,ALTER ... CONVERT TO則需要一個。

社區 wiki 答案基於問題作者最初留下的評論:

最後我解決了這個問題。問題出在 phpmyadmin 中:我可以看到那些character_set_client在命令中使用 MySQL 查詢的人,putty但在 phpmyadmin 中仍然沒有。

這是 phpmyadmin 中的一個錯誤,如Mathias Bynens的How to support full Unicode in MySQL databases中所述。

引用自:https://dba.stackexchange.com/questions/158437