來源于:
https://www.4xseo.com/blog/977/
前幾天突然發現博客數據庫出現了問題,從阿里云的數據庫導出的sql文件,導入到其他數據庫出錯,提示內容大概是這樣的
CREATE TABLE? `wp_commentmeta` (
`meta_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`comment_id` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT? '0',
`meta_key` VARCHAR( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,
`meta_value` LONGTEXT COLLATE utf8mb4_unicode_ci,
PRIMARY KEY (? `meta_id` ) ,
KEY? `comment_id` (? `comment_id` ) ,
KEY? `meta_key` (? `meta_key` ( 191 ) )
) ENGINE = INNODB AUTO_INCREMENT =2050 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = DYNAMIC ;
MySQL 返回:文檔
當然發現這個問題就慌了,因為網站數據庫備份是維護網站必須要做的,如果后續更換主機或者博客出現異常,將直接導致網站無法恢復。為此,思享還笨笨的把博客70多篇文章重新在本地發了一遍。但是因為URL改變,301重定向比較麻煩。最終還是放棄了,幸好,今天在百度知道上得到了解決辦法
原因
wordpress官方的相關說明是只要在數據庫支持utf8mb4的時候會把部分數據表的編碼升級為utf8mb4,如果不支持就不會轉化為utf8mb4編碼(wordpress 4.4版本支持mysql 5.0+)。

解決辦法
方法一:替換編碼
使用代碼編輯器打開導出的sql數據文件;
先查找:
utf8mb4_unicode_ci
替換為:
utf8_general_ci
再查找
utf8mb4
替換為
utf8
注意:一定要按照上面的順序進行替換,否則不能替換成功。
PS:博客吧通過該方法導入成功,暫時沒有發現有問題,但還是要先備份好數據再進行操作。
方法二:升級數據庫
把網站要用的mysql數據庫升級到5.5.3以上版本。
本文由思享SEO博客原創撰寫,歡迎分享本文,轉載請保留出處和鏈接!