前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 数据库类型从 InnoDB 转换为 MyISAM

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

原创
作者头像
魏艾斯博客www.vpsss.net
发布2018-05-08 08:19:04
2.6K5
发布2018-05-08 08:19:04
举报

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

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

注意操作前先备份数据库,如何备份参考https://cloud.tencent.com/developer/article/1140833

打开 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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档