首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与MyISAM相关的数字海洋数据库问题

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

Stack Overflow用户
提问于 2019-11-05 20:40:59
回答 2查看 725关注 0票数 2

我们的Laravel应用程序使用InnoDB以及MyISAM表,它一直运行良好,直到最近,服务器已经移动到数字海洋,以便使用他们的“分布式数据库系统”。

现在,当我运行迁移时,它工作得很好,直到它发现第一个表迁移尝试创建MyISAM表和脚本崩溃,并给出以下错误:

代码语言:javascript
复制
Storage engine MyISAM is disabled (Table creation is disallowed)

谁能告诉我如何在数字海洋中启用存储引擎MyISAM?

我搜索了很多,但找不到任何有用的线索。

======

更新

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-29 21:04:38

有没有人想知道同样的事情。这根本是不可能的。此外,MyISAM没有提供InnoDB所不能提供的功能,因此唯一的方法就是将MyISAM迁移转换为InnoDB。同样在我的例子中,我们使用的是托管DB,它在数字海洋中肯定不支持MyISAM。

票数 1
EN

Stack Overflow用户

发布于 2021-10-27 09:32:39

建议您更改sql,如下所示:

代码语言:javascript
复制
--incorrect create table sql:
CREATE TABLE t (i INT) ENGINE = MYISAM;
--new creat table sql(amended):
CREATE TABLE t (i INT) ENGINE = InnoDB;

另一种解决问题的方法,但不建议顺便说一句:

1、检查数据库的当前引擎

代码语言:javascript
复制
show engines;

2、检查当前表引擎

有两种检查方法:

代码语言:javascript
复制
show table status from `db_name` where name='table_name';
--or
show create table table_name;

3、修改当前引擎

代码语言:javascript
复制
alter table table_name engine=innodb;

4、close InnoDB引擎

关闭mysql服务:

代码语言:javascript
复制
net stop mysql

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

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

从#skip-innodb更改为skip-innodb

启动mysql服务:

代码语言:javascript
复制
net start mysql
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58711584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档