我们如何检查 MySQL 中是否安装了 Innodb 插件?是否有任何变量可以检查 Innodb 插件是否安装?
4 回答
如果您需要通过查询数据库来确定是否启用了 InnoDB,则应使用 INFORMATION_SCHEMA 表。
SELECT SUPPORT FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE = 'InnoDB';
其中,如果 InnoDB 已启用并且是默认数据库,则会给出以下结果
+---------+
| SUPPORT |
+---------+
| DEFAULT |
+---------+
如果 InnoDB 可用,但不是默认引擎,则结果将为YES
. 如果它不可用,结果显然是NO
.
请参阅http://dev.mysql.com/doc/refman/5.5/en/engines-table.html 和http://dev.mysql.com/doc/refman/5.5/en/information-schema.html参考。
当 InnoDB 可用时,您在评论中提到的 INFORMATION_SCHEMA 表也可用。
SHOW TABLES FROM INFORMATION_SCHEMA LIKE 'INNODB%';
+----------------------------------------+
| Tables_in_INFORMATION_SCHEMA (INNODB%) |
+----------------------------------------+
| INNODB_CMP_RESET |
| INNODB_TRX |
| INNODB_CMPMEM_RESET |
| INNODB_LOCK_WAITS |
| INNODB_CMPMEM |
| INNODB_CMP |
| INNODB_LOCKS |
+----------------------------------------+
类型:
SHOW ENGINES
在 mysql 提示符下。
Innodb 会这样:
Engine: InnoDB
Support: YES
Comment: Supports transactions, row-level locking, and foreign keys
采用SHOW ENGINES;
见:http ://dev.mysql.com/doc/refman/5.0/en/storage-engines.html
" show plugins
" 是可用的,但是我的服务器使用的是内置的 InnoDB 引擎,仍然不清楚是内置版本还是插件版本。
似乎最好的检查方法是查看my.cnf
文件。根据插件的安装文档,您必须专门忽略内置版本并启用插件:
[mysqld]
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so
;innodb_trx=ha_innodb_plugin.so
;innodb_locks=ha_innodb_plugin.so
;innodb_lock_waits=ha_innodb_plugin.so
;innodb_cmp=ha_innodb_plugin.so
;innodb_cmp_reset=ha_innodb_plugin.so
;innodb_cmpmem=ha_innodb_plugin.so
;innodb_cmpmem_reset=ha_innodb_plugin.so
(此处显示的 plugin-load 选项值被格式化为多行以用于显示目的,但应使用单行写入 my.cnf 中,选项值中不包含空格。在 Windows 上,替换扩展.dll
的每个实例。).so
见http://dev.mysql.com/doc/refman/5.1/en/replacing-builtin-innodb.html
从 v5.5 开始,该插件取代了内置的 InnoDB:http: //dev.mysql.com/doc/refman/5.5/en/innodb-installation.html