我们的Laravel应用程序使用InnoDB以及MyISAM表,它一直运行良好,直到最近,服务器已经移动到数字海洋,以便使用他们的“分布式数据库系统”。
现在,当我运行迁移时,它工作得很好,直到它发现第一个表迁移尝试创建MyISAM表和脚本崩溃,并给出以下错误:
Storage engine MyISAM is disabled (Table creation is disallowed)谁能告诉我如何在数字海洋中启用存储引擎MyISAM?
我搜索了很多,但找不到任何有用的线索。
======
更新
大多数评论建议我应该直接切换到InnoDB,这将是最终的解决方案,但如果有任何方法来启用数字海洋的MyISAM存储引擎,我想知道。
发布于 2019-11-29 21:04:38
有没有人想知道同样的事情。这根本是不可能的。此外,MyISAM没有提供InnoDB所不能提供的功能,因此唯一的方法就是将MyISAM迁移转换为InnoDB。同样在我的例子中,我们使用的是托管DB,它在数字海洋中肯定不支持MyISAM。
发布于 2021-10-27 09:32:39
建议您更改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';
--or
show create table table_name;3、修改当前引擎
alter table table_name engine=innodb;4、close InnoDB引擎
关闭mysql服务:
net stop mysql找到MySQL的安装文件夹,打开文件my.ini:
从default-storage-engine=INNODB更改为default-storage-engine=MYISAM
从#skip-innodb更改为skip-innodb
启动mysql服务:
net start mysqlhttps://stackoverflow.com/questions/58711584
复制相似问题