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 及以下版本。

温馨提示: 本文最后更新于2024-06-16 19:03:37,某些文章具有时效性,若有错误或已失效,请在下方 留言或联系 Ferry资源网
© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容