來源于:
https://www.4xseo.com/blog/977/
前幾天突然發(fā)現(xiàn)博客數(shù)據(jù)庫出現(xiàn)了問題,從阿里云的數(shù)據(jù)庫導(dǎo)出的sql文件,導(dǎo)入到其他數(shù)據(jù)庫出錯,提示內(nèi)容大概是這樣的
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 返回:文檔
當(dāng)然發(fā)現(xiàn)這個問題就慌了,因為網(wǎng)站數(shù)據(jù)庫備份是維護(hù)網(wǎng)站必須要做的,如果后續(xù)更換主機(jī)或者博客出現(xiàn)異常,將直接導(dǎo)致網(wǎng)站無法恢復(fù)。為此,思享還笨笨的把博客70多篇文章重新在本地發(fā)了一遍。但是因為URL改變,301重定向比較麻煩。最終還是放棄了,幸好,今天在百度知道上得到了解決辦法
原因
wordpress官方的相關(guān)說明是只要在數(shù)據(jù)庫支持utf8mb4的時候會把部分?jǐn)?shù)據(jù)表的編碼升級為utf8mb4,如果不支持就不會轉(zhuǎn)化為utf8mb4編碼(wordpress 4.4版本支持mysql 5.0+)。

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