与 MyISAM 相关的数字海洋数据库问题

Digital Ocean Database Issue related to MyISAM

我们的 Laravel 应用程序使用 InnoDB 和 MyISAM tables 并且它运行良好,直到最近服务器已移动到 Digital Ocean 以使用他们的“分布式数据库系统”。

现在,当我 运行 迁移时,它工作正常,直到找到第一个 table 尝试创建 MyISAM 的迁移 table 并且脚本崩溃并给出以下错误:

Storage engine MyISAM is disabled (Table creation is disallowed)

谁能告诉我如何在 Digital Ocean 中启用存储引擎 MyISAM?

我搜索了很多,没找到有用的帖子。

======

更新

大多数评论建议我应该切换到 InnoDB,这将是最终的解决方案,但如果有任何方法可以为数字海洋启用 MyISAM 存储引擎,我想知道。

这里有人想知道同样的事情。这根本不可能。 MyISAM 提供的 plus 中没有任何东西是 InnoDB 无法做到的,因此唯一的方法是将 MyISAM 迁移转换为 InnoDB。同样在我的例子中,我们使用的是托管数据库,它肯定不支持数字海洋中的 MyISAM。

建议您修改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、检查当前table引擎

两种方式查看:

show table status from `db_name` where name='table_name';
--or
show create table table_name;

3、修改当前引擎

alter table table_name engine=innodb;

4、关闭InnoDB引擎

关闭mysql服务:

net stop mysql

找到MySQL的安装文件夹,打开文件my.ini

default-storage-engine=INNODB 更改为 default-storage-engine=MYISAM

#skip-innodb 更改为 skip-innodb

启动mysql服务:

net start mysql