魏艾斯博客有一个 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 及以下版本。
暂无评论内容