今天在从本地数据库复制表数据到虚拟机 CentOS 6.6 上的数据库时,得到提示:
Unknown table engine 'InnoDB'
于是在服务器 MySQL 中查看了引擎:
mysql> show engines\G
得到:
*************************** . row ***************************
Engine: MyISAM
Support: DEFAULT
Comment: MyISAM storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** . row ***************************
Engine: CSV
Support: YES
Comment: CSV storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** . row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** . row ***************************
Engine: BLACKHOLE
Support: YES
Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
XA: NO
Savepoints: NO
*************************** . row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** . row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
*************************** . row ***************************
Engine: ARCHIVE
Support: YES
Comment: Archive storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** . row ***************************
Engine: FEDERATED
Support: NO
Comment: Federated MySQL storage engine
Transactions: NULL
XA: NULL
Savepoints: NULL
*************************** . row ***************************
Engine: InnoDB
Support: NO
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: NULL
XA: NULL
Savepoints: NULL
rows in set (0.00 sec)
在 InnoDB 的 Supports 为 NO
解决方法是,编辑 my.cnf
[root@localhost mysql]# vim /etc/my.cnf
把其中 innodb = OFF 改为 innodb = ON
同时把 skip-innodb 注释掉即可。