[英]ERROR 1115 (42000): Unknown character set: 'utf8mb4' on connection
[英]#1115 - Unknown character set: 'utf8mb4'
我的個人計算機上運行着一個本地網絡服務器,用於本地開發。 我現在處於導出數據庫並將其導入到托管VPS的階段。
導出然后導入時,出現以下錯誤!
有人可以指出我正確的方向嗎?
該錯誤清楚地表明,您的舞台數據庫服務器上不支持utf8mb4
。
原因 :可能在本地具有MySQL
5.5.3
或更高版本,而在舞台/托管VPS上, MySQL
服務器版本低於5.5.3
utf8mb4字符集是在MySQL 5.5.3中添加的。
由於MySQL的
utf8
字符集存在錯誤,因此添加了utf8mb4
。 MySQL對utf8
字符集的處理僅允許單個代碼點最多3個字節,這不足以代表整個Unicode(最大代碼點=0x10FFFF
)。 因為他們不想破壞任何依賴於這種錯誤行為的東西,utf8mb4
添加了utf8mb4
。 文檔在這里 。
解決方案1 :只需將您的MySQL服務器升級到5.5.3(至少)-下一次,請注意您在本地,階段和產品上使用的版本必須全部相同。 一個建議 -目前默認字符集應為utf8mb4
。
解決方案2 (不推薦):將當前字符集轉換為utf8
,然后導出數據-加載成功。
有時我在使用HeidiSQL時會遇到類似的問題,默認情況下,它以utf8mb4字符編碼導出。 並非所有的MySQL安裝都支持這種編碼,並且導入此類數據會導致類似的錯誤消息。 然后,我的解決方法是使用phpMyAdmin導出數據,該文件在utf8中導出。 可能還有其他工具和可能的方式,例如手動編輯轉儲文件,將其從utf8mb4轉換為utf8(如果需要)並將SET NAMES utf8mb4
更改為SET NAMES utf8
。 utf8mb4是utf8的超集,因此,如果您完全確定自己的數據只是utf8,則只需將轉儲文件中的SET NAMES
更改為utf8
。
通過文本編輯器打開sql文件,查找並替換所有
utf8mb4 to utf8
再次導入。
這對我有幫助
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.