前几天突然发现博客数据库出现了问题,从阿里云的数据库导出的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博客 » wordpress导入mysql数据库出错的解决办法