SQLSTATE [42000]:语法错误或访问冲突:1286未知表引擎'InnoDB'

时间:2012-05-04 15:18:21

标签: mysql innodb

有些人可能会说“其他帖子中有很多答案”或“Google it”。但实际上我找不到答案。

我正在使用symfony开发一个PHP / MySQL项目,原因不明(意思是“我没有编写任何php行”),我收到此错误“SQLSTATE [42000]:语法错误或访问冲突:1286未知表引擎'InnoDB'“。

我已经尝试过这些解决方案:

  1. 重启MySQL
  2. 停止MySQL,删除ib_logfile0和ib_logfile1,启动Mysql
  3. 做一个“显示引擎”。此命令不返回“InnoDB”的实例。甚至不是“非活动”(很奇怪,对吧?)。
  4. (甚至更奇怪)PHPMyAdmin显示所有表,除了使用InnoDB的表显示“used”而不是“InnoDB”。 MyISAM表没问题。
  5. 有些人建议转储数据库,重新编译MySQL并将sql文件加载到重新编译的数据库中但是......让我说我没心情(这需要很多时间)。

2 个答案:

答案 0 :(得分:3)

Show engines告诉InnoDB无论出于什么原因都无法启动。 您必须打开错误日志(选中SHOW VARIABLES LIKE 'error_log'):

mysql> show variables like 'log_error';
+---------------+--------------------------+
| Variable_name | Value                    |
+---------------+--------------------------+
| log_error     | /var/log/mysql/error.log |
+---------------+--------------------------+
1 row in set (0.00 sec)

找到InnoDB无法启动的原因。然后解决它。

答案 1 :(得分:0)

首先查看你的MySQL版本,如果支持innoDB,请先在linux上查看mysql配置文件(/etc/my.cnf或/etc/mysql/my.cnf),(Windows我不知道)使用“skip-innodb”参数禁用innodb。某些配置禁用了innoDB支持,因为使用了大多数RAM,