禁用 MYISAM 引擎的 MySQL 插件
Jun 07, 2016 pm 04:39 PM在无法控制最终用户使用 MySQL 时,就可能出现混合使用 InnoDB 和 MYISAM 的情况。这时就需要考虑为两种引擎各自配置缓存等资源,即使最后实际只会用 InnoDB 的时候也是如此,这就造成了无法充分利用资源,也增加了资源限制的难度。同时由于 MYISAM 引擎的稳
在无法控制最终用户使用 MySQL 时,就可能出现混合使用 InnoDB 和 MYISAM 的情况。这时就需要考虑为两种引擎各自配置缓存等资源,即使最后实际只会用 InnoDB 的时候也是如此,这就造成了无法充分利用资源,也增加了资源限制的难度。同时由于 MYISAM 引擎的稳定性问题,为了减少运维工作,通常也不希望用户去使用 MYISAM 引擎。这时候就想禁用掉它。但是 MYISAM 引擎被 MySQL 系统表使用,还可能用于内部临时表,所以不可能直接禁用,因此 mysqld 也没有 –skip-myisam 这样的参数。所以只能想别的办法。比如,只禁止创建新的 MYISAM 表,对于原有的表则没有影响。于是就做了这么一个插件
https://github.com/xiezhenye/mysql-plugin-disable-myisam
其实这个插件很简单,只是替换了 MYISAM 引擎的 create 入口,改为返回一个包装过的,替换了 create 方法的 ha_myisam 对象。在试图创建表的时候直接错误返回。
按装插件后,就无法再创建任何新的 MYISAM 表了
mysql> CREATE TABLE `test4` ( `id` int(11) AUTO_INCREMENT, `value` varchar(30), PRIMARY KEY (`id`) ) ENGINE=MyISAM; ERROR 1030 (HY000): Got error 1 from storage engine
原文地址:禁用 MYISAM 引擎的 MySQL 插件, 感谢原作者分享。

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen

Wie optimiert man die MySQL-Abfrageleistung in PHP?

Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP?

Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein?

Welche Anwendungsszenarien gibt es für Java-Aufzählungstypen in Datenbanken?

So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4

Wie verwende ich gespeicherte MySQL-Prozeduren in PHP?

Wie erstelle ich eine MySQL-Tabelle mit PHP?
