问题出现环境:
CentOS 6.10, MySQL 5.1.73
问题现象:
对表做select操作的时候,出现如下的错误:
1286 - Unknown table engine 'InnoDB’
问题出现经过:
在搭建一个既有系统的开发环境的时候,做了一下mysql的数据转存操作。
操作比较原始一些,就是把数据库文件ibdatan文件,ib_logfilen文件替换原来的文件。从客户端登上去看的时候,数据库里面的表都看不见了。尝试了一下select count(*) from tableA的操作,出现了“ Unknown table engine ‘InnoDB’”这样的错误。
错误原因
主要本次安装的MySQL为5.1,没有安装InnoDB。MySQL 5.5开始,将默认数据库存储引擎从MyISAM改为InnoDB,就不会有这些问题了。这之前的办法要另行安装。
登入mysql客户端,通过show engines命令,可以看到innodb的安装情况。
mysql> show engines;
+------------+---------+-----------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+-----------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+------------+---------+-----------------------------------------------------------+--------------+------+------------+
4 rows in set (0.00 sec)