自從昨天以來,我在這個問題上失去了主意。如何在MySQL上正確設置utf8mb4?
我想我的MySQL數據庫從UTF8到utf8mb4轉換。要做到這一點,我也跟着這些網站/線程:https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4,Cannot store emoji in database,Change MySQL default character set to UTF-8 in my.cnf?等
我的數據庫似乎有像預期的那樣utf8mb4_unicode_ci collation
,她的所有表了。
然而,當我開始SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
我獲得:
#With a Root access
Variable_name Value
character_set_client utf8 #expecting utf8mb4
character_set_connection utf8 #expecting utf8mb4
character_set_database utf8mb4 #good
character_set_filesystem binary #good
character_set_results utf8 #expecting utf8mb4
character_set_server utf8mb4 #good
character_set_system utf8 #expecting utf8mb4
collation_connection utf8_general_ci #expecting utf8mb4_unicode_ci
collation_database utf8mb4_unicode_ci #good
collation_server utf8mb4_unicode_ci #good
#With a standard user access
Variable_name Value
character_set_client utf8 #expecting utf8mb4
character_set_connection utf8mb4 #good
character_set_database utf8mb4 #good
character_set_filesystem binary #good
character_set_results utf8 #expecting utf8mb4
character_set_server utf8mb4 #good
character_set_system utf8 #expecting utf8mb4
collation_connection utf8mb4_unicode_ci #good
collation_database utf8mb4_unicode_ci #good
collation_server utf8mb4_unicode_ci #good
我設置了/etc/mysql/conf.d/90-my.cnf
文件是這樣的:
[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
init-connect = 'SET collation_connection = utf8mb4_unicode_ci'
init-connect = 'SET NAMES utf8mb4'
我的MySQL版本是54年5月5日,所有集一個debian 7。
有沒有人有一個線索,以幫助我嗎?
THX對您有所幫助,併爲我的英語不好對不起......
編輯
有趣的事實:當我在在線命令檢查變量,我得到這個:
mysql> show variables like "%character%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
雖然我仍然有utf8
爲character_set_client
和character_set_results
當我與phpMyAdmin檢查(使用非超級用戶權限)
THX了很多的關注。我只是編輯線程來添加字符/整理的東西與標準的用戶訪問數據庫。結果更好但仍不完美。 我快速查看了你的鏈接文章,你的解釋非常好。我一回到工作崗位就會嘗試。我會告訴你,如果有什麼工作。 (順便說一句,我試過'HEX(TXT)'的東西,結果是好的,一切都像預期的那樣「十六進制編碼」)。無論如何,我保持你的聯繫很快。 THX再次 – Vae
嘿裏克,這裏的消息:我設置你的「你應該做的」部分提到的一切。數據的測試是好的(沒有雙重編碼,每個字符都能正確識別)。 我的問題是:我有問號的數據庫,而不是表情符號,(但是他們在我的網站上正確顯示)。你寫道:「要存儲的字節不會被編碼爲utf8/utf8mb4。解決這個問題。」我怎樣才能解決這個問題 ? 僅供參考,我正在使用php。 Thx再次爲您的利益。再見。 – Vae
「解釋非常好」 - 我討厭管理多少年,我一直在磨練這些解釋。 –