2012-05-09 64 views

回答

9

如果您需要確定的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.htmlhttp://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       | 
+----------------------------------------+ 
7

類型:

SHOW ENGINES

在一個MySQL提示。

Innodb的怎麼會像這樣:

Engine: InnoDB 
Support: YES 
Comment: Supports transactions, row-level locking, and foreign keys 
+0

我想知道innodb_plugin是否安裝,innodb_plugin會給出有關信息模式表中事務的信息。 http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-information-schema-transactions.html – Sandy

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

插件替換內置的InnoDB截至v5.5:http://dev.mysql.com/doc/refman/5.5/en/innodb-installation.html