wordpress导入mysql数据库出错的解决办法

自媒体 思享 2412浏览

前几天突然发现博客数据库出现了问题,从阿里云的数据库导出的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以上版本。

推荐阅读

Mysql导入报错 near “ON” at position 25

服务器转移时,部分客户数据提示导入失败。手动从旧服务器导出正常文件未确认,但是导入到目标服务器时一直显示如下错误。搜索了一下,发现是max_allowed_pa​​cket设置的太小了。 》mysql会根据配置文件限制服务器接受的数据包大小,有时大的......

mysql报错’./xxx/xxx’ is marked as crashed and should be repaired

用一个CMS的时候,没做任何调整和改动就用了,突然发现不可用,报错了’。“/XXX/XXX”被标记为已崩溃,应该修复。我在网上查了一下。不是程序问题,是mysql报错。一张桌子损坏了。...

纯代码实现wordpress附件页面重定向到文章或首页

前几天发现wordpress网站有评论留言的回顾。结果一看就是附件页面的垃圾评论。这才发现原来wordpress上传的附件也会有对应的页面。难怪之前收录了很多附件页面,但是我的机器人禁止了,忘记了。本来以为会禁用,结果只找到了在线使用插件的方法。最后......