【问题标题】:How do I set MyISAM as default table handler in MySQL?如何将 MyISAM 设置为 MySQL 中的默认表处理程序?
【发布时间】:2011-06-25 18:14:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql mysql-management


    【解决方案1】:

    更新:自 MySQL 5.5.5 以来,InnoDB 一直是默认存储引擎。 MyISAM 现在是遗留的,但仍然存在。

    此外,default-table-type 选项是 default-storage-engine 的同义词,在 MySQL 5.5 中被删除。而且,从 MySQL 5.6.3 开始,default-storage-engine 仅为永久表设置存储引擎。


    查看你的默认存储引擎当前是做什么的:mysql> SHOW 引擎; 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
    

    【讨论】:

    • default-storage-engine=MYISAM
    • MySQL 5.7 拒绝以default-table-type 开头。更改为default-storage-engine 有效。应更新接受的答案以反映这一点。
    • @forthrin 完成。谢谢
    【解决方案2】:

    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
    【解决方案3】:

    对于 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 有机会之前关闭窗口并在关闭时杀死作业 干净地关闭其所有数据库,当然永远不要采取 曾经损坏的数据库的备份突然变得最多 重要的东西在那里生活。

    所以我们决定制作默认数据库引擎 MISAM,因为它是 这些表不太可能发生。”

    【讨论】:

    • 你没有看到要求默认为MyISAM而不是InnoDB的问题
    猜你喜欢
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多