您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

禁用 MYISAM 引擎的 MySQL 插件

2026/6/14 1:57:07发布22次查看
在无法控制最终用户使用 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 插件, 感谢原作者分享。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product