如何在MySQL中将MyISAM设置为默认的表处理程序?

4

我希望我的所有表和整个数据库都使用MyISAM引擎。

我的项目专门使用MyISAM数据库。

我希望所有表的默认表处理程序都是MyISAM。

3个回答

11

更新:自MySQL 5.5.5起,InnoDB一直是默认的存储引擎。 MyISAM现在已经过时,但仍然存在。

此外,默认表类型选项是default-storage-engine的同义词,并在MySQL 5.5中被删除。从MySQL 5.6.3开始,default-storage-engine仅设置永久表的存储引擎。


要查看当前的默认存储引擎,请执行以下操作:mysql> SHOW engines; 长期以来,MyISAM一直是默认存储引擎,但有人可能已将其更改。

要将默认存储引擎更改回MyISAM,请输入

default-table-type=myisam

在你的my.cnf文件中的[mysqld]部分下添加以下内容,然后重新启动mysqld:

要将现有的表更改回MyISAM,请执行以下操作:

ALTER TABLE tbl_name ENGINE=MyISAM;

另外,数据库没有存储引擎,才有。因此,要查看表正在使用哪个引擎:

SHOW CREATE TABLE tbl_name; or SHOW TABLE STATUS LIKE 'tbl_name'\G

1
默认的存储引擎是MYISAM。 - borayeris
4
MySQL 5.7无法使用default-table-type启动,改为使用default-storage-engine即可。应更新被采纳的答案以反映这一点。 - forthrin
@forthrin 完成了。谢谢。 - rkulla

1

MyISAM 是默认的存储引擎。但如果不是您的情况,则可以执行以下任一操作:

  1. 在 MySQL 服务器启动期间使用 --default-storage-engine 进行更改,
  2. 通过在 my.cnf 配置文件中设置 default-storage-engine
  3. 通过设置环境变量:

SET GLOBAL storage_engine = MyISAM;

SET SESSION storage_engine = MyISAM;

正如你现在可能已经知道的那样,Mysql 5.5 的默认引擎是Innodb。 - KCD

1
对于MySQL 5.7,请添加以下行:

default-storage-engine=INNODB

my.inimy.cnf中进行设置。
官方文档在此:https://dev.mysql.com/doc/refman/5.7/en/storage-engine-setting.html 这适用于我在WAMP 3.0.6中使用MySQL 5.7.14,该版本默认安装MyISAM,尽管MySQL文档中声明“MySQL 5.7中的默认引擎是InnoDB”。
这是由WAMP开发人员解释的:
“我们花费了大量时间回答有关INNODB数据库损坏的问题。我们认为这是因为人们使用INNODB数据库,但不理解这些表更加复杂。他们只是关闭窗口并在MYSQL有机会清除所有数据库之前终止作业,当然从未备份过一旦损坏就变得非常重要的数据库。”
“所以我们决定将默认数据库引擎设置为MYISAM,因为这样做不太可能发生这些表的情况。”

你没有注意到问题是要求默认使用 MyISAM 而不是 InnoDB - AaA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接