收到BAE發(fā)的郵件,想測試一下 BAE 的性能,在導入數(shù)據(jù)庫的時候出現(xiàn)了#1273 - Unknown collation: 'utf8mb4_unicode_ci' 的錯誤,從字面意思上看是數(shù)據(jù)庫不支持 utf8mb4 編碼,于是發(fā)了工單,BAE 客服是這樣回復的。
–尊敬的用戶您好! BAE 的數(shù)據(jù)庫是不支持 utf8mb4 編碼的,所以導入時會出現(xiàn)該錯誤,建議您在導出 sql 文件的時候不使用 utf8mb4 編碼,推薦 utf8 編碼。感謝您對開放云的支持,祝您生活愉快。
WordPress4.2 的數(shù)據(jù)庫編碼使用了 utf8mb4 來支持 Emoji 表情和更多的語言文字。而由于 BAE3.0 不支持 utf8mb4,于是就出現(xiàn)了導入時的錯誤。
看了 WordPress 官方關于utf8mb4編碼的說明,意思是只要在數(shù)據(jù)庫支持的時候才會吧部分數(shù)據(jù)表的編碼升級為utf8mb4,這就意味著,WordPress 還是向下兼容 utf8 格式的數(shù)據(jù)庫編碼的。這樣,在導入之前,我們只需要把 utf8mb4 編碼轉(zhuǎn)成 utf-8 就可以了,有兩種方法可以替換數(shù)據(jù)庫編碼,
一、直接通過代碼編輯器替換 utf8mb4 為 utf8_general_ci
在導入數(shù)據(jù)庫之前,用代碼編輯器打開需要導入的數(shù)據(jù)庫文件。
- 查找:
utf8mb4_unicode_ci,替換為:utf8_general_ci - 查找:
utf8mb4替換為utf8
替換的時候一定要注意順序,如果先替換utf8mb4,再替換utf8mb4_unicode_ci就會找不到utf8mb4_unicode_ci而造成替換失敗。
二、通過 SQL n語句替換
熟悉 SQL 語句的朋友也可以直接通過 SQL 命令修改,通過命令修改的參考如下,有能力的朋友可以嘗試使用。
mysql_select_db($dbname);
$result=mysql_query('show tables');
while($tables = mysql_fetch_array($result)) {
foreach ($tables as $key => $value) {
mysql_query("ALTER TABLE $value CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci");
}}



非常感謝, 完美解決.