我们如何检查在MySQL中是否安装了Innodb插件? 是否有任何变量可以检查Innodb插件是否安装?
答案 0 :(得分:11)
如果您需要通过查询数据库来确定是否启用了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 |
+----------------------------------------+
答案 1 :(得分:7)
类型:
SHOW ENGINES
在mysql提示符下。
Innodb会如此:
Engine: InnoDB
Support: YES
Comment: Supports transactions, row-level locking, and foreign keys
答案 2 :(得分:2)
使用SHOW ENGINES;
请参阅:http://dev.mysql.com/doc/refman/5.0/en/storage-engines.html
答案 3 :(得分:0)
" 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
(此处显示的插件加载选项值在多行上格式化以用于显示目的,但应使用单行在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