admin管理员组文章数量:1640614
问题描述:初始化数据库创建表时出现如下错误:
错误代码:3161
3161 - Storage engine MyISAM is disabled (Table creation is disallowed).
此错误也经常出现在阿里云RDS数据库与本地数据库数据互相迁移过程中
原因分析:MySQL在8.0以后不在默认支持MyISAM
引擎,默认的支持引擎为:InnoDB
,MySQL官方的说明:
In MySQL 8.0, it is normally necessary to use ENGINE to specify the MyISAM storage engine because InnoDB is the default engine.
官方链接:https://dev.mysql/doc/refman/8.0/en/myisam-storage-engine.html
解决办法:
1、查看当前数据库版本,确认是否是8.x或以上
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.10 |
+-----------+
1 row in set (0.05 sec)
2、如果是8.x版本的数据库,需要将创表语句中的引擎改为InnoDB
--报错SQL语句/incorrect create table sql:
CREATE TABLE t (i INT) ENGINE = MyISAM;
--修正后/new creat table sql(amended):
CREATE TABLE t (i INT) ENGINE = InnoDB;
另一种解决方案 :修改本地/云数据库的默认引擎(不推荐)
1、查看系统支持的存储引擎
show engines;
2、查看表使用的存储引擎
两种方法:
show table status from `db_name` where name='table_name';
show create table table_name;
3、修改表引擎方法
alter table table_name engine=innodb;
4、关闭Innodb
引擎方法
关闭mysql服务:
net stop mysql
找到MySQL安装目录下的my.ini
文件:
找到default-storage-engine= MyISAM
改为:default-storage-engine=InnoDB
找到skip-innodb
改为:#skip-innodb
删除下面文件前需要备份:
C:\Program Files\MySQL\MySQL Server 5.0\data\ib_logfile*
C:\MySQL Datafiles\ibdata*
启动mysql服务:
net start mysql
可能使用到的资源链接:
◆ 关于MyISAM
和InnoDB
引擎的区别:MySQL 两种存储引擎: MyISAM和InnoDB 简单总结
[ 本文作者 ] bluetata
[ 原文链接 ] https://bluetata.blog.csdn/article/details/120995180
[ 最后更新 ] 06/24/2023 18:55
[ 版权声明 ] 如果您在非 CSDN 网站内看到这一行,
说明网络爬虫可能在本人还没有完整发布的时候就抓走了我的文章,
可能导致内容不完整,请去上述的原文链接查看原文。
本文标签: 解决办法StorageEnginemysqlCreation
版权声明:本文标题:[ MySQL ] 解决办法:3161 - Storage engine MyISAM is disabled (Table creation is disallowed). 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1729319479a1195703.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论