关注VPS服务器
相关知识分享

MySQL 数据库类型从 InnoDB 转换为 MyISAM

魏艾斯博客有一个 wordpress 站点,有一天无意中发现数据库挺大的,可是这个站也就不到 10 篇文章,没道理这么大的数据库啊。然后开始查找原因,发现在 phpmyadmin 后台中的数据库类型和别的 wp 站点不同,这个站点是 InnoDB 类型而别的 wp 站点是 MyISAM 类型。也忘记了怎么搞出来的,InnoDB 类型会导致数据库大小膨胀了几倍,所以决定从InnoDB 类型转换为 MyISAM 类型

数据库这一块比较麻烦,去网络上找了一圈也没有一个确切答案,干脆在论坛问了一下军哥,很快就有答复了,这里给勤奋的军哥点个赞,感谢他做出 lnmp 这么好用又免费的一键包方便了大家,还每天在论坛勤奋的回答这么多基础性的问题。

注意操作前先备份数据库,如何备份参考https://www.vpsss.net/635.html

打开 SSH 软件连接到 VPS 上面,输入下面命令:

mysql -uroot -p

输入 phpmyadmin 密码登陆

出现“mysql>”就可以继续了。

按照下面的格式输入,注意区分大小写和;号。数据库名和表名都是小写,其余的命令都是大写,最后的;号不输入,命令不会生效。

USE 数据库名;
SHOW TABLES;
ALTER TABLE 表名 ENGINE=MYISAM;

上图是我转换的第一个 wp_commentmeta 表,最后也显示成功了,后面挨个表名转换就行了。

我这里一共 13 个表名,都转换完成后,输入“exit”退出就行了。现在去优化数据库果然尺寸小了 3 倍多,恢复到正常了,再登录 WordPress 后台和前台检查一遍都正常了,这次转换就算成功了。

2018 年 4 月 28 日补充资料如下:

如果 MySQL 版本高于 5.7,会报错“invalid default value for”,MySQL5.7 不允许时间戳值为 0,比如下面的:

datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’

所以像本文这种转换方法只用于 MySQL5.6 及以下版本。

允许转载,保留出处:魏艾斯博客 » MySQL 数据库类型从 InnoDB 转换为 MyISAM
分享到: 更多 (0)

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-19

    写的不错,做个记录,已经转载保留版权。

    李洋博客1年前 (2017-05-10)回复
    • 感谢对原创文章保留版权

      魏艾斯博客1年前 (2017-05-10)回复
  2. #-18

    写的不错!有见解

    橙子VIP视频5个月前 (04-28)回复
    • 谢谢评价,有时间多来转转

      魏艾斯博客5个月前 (04-28)回复