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

Mysql SQLSTATE[42000]:语法错误或访问冲突:1286未知表引擎';InnoDB';,mysql,innodb,Mysql,Innodb,你们中的一些人可能会说“在其他线程中有很多答案”或“谷歌搜索”。但实际上我没有找到答案 我正在使用symfony开发一个PHP/MySQL项目,由于未知的原因(意思是“我没有写任何PHP行”),我得到了这个错误“SQLSTATE[42000]:语法错误或访问冲突:1286未知表引擎‘InnoDB’” 我已经尝试过这些解决方案: 重新启动MySQL 停止MySQL,删除ib_logfile0和ib_logfile1,启动MySQL 做一个“展示引擎”。此命令不返回“InnoDB”的实例。甚至连“不

你们中的一些人可能会说“在其他线程中有很多答案”或“谷歌搜索”。但实际上我没有找到答案

我正在使用symfony开发一个PHP/MySQL项目,由于未知的原因(意思是“我没有写任何PHP行”),我得到了这个错误“SQLSTATE[42000]:语法错误或访问冲突:1286未知表引擎‘InnoDB’”

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

  • 重新启动MySQL
  • 停止MySQL,删除ib_logfile0和ib_logfile1,启动MySQL
  • 做一个“展示引擎”。此命令不返回“InnoDB”的实例。甚至连“不活跃”都没有(奇怪,对吧?)
  • (更奇怪的是)PHPMyAdmin显示所有表,除了使用InnoDB的表显示“已使用”而不是“InnoDB”之外。MyISAM表没有问题

  • 有些人建议转储数据库,重新编译MySQL,并将sql文件加载到重新编译的数据库中,但是。。。假设我没有心情(那会花很多时间)。

    首先检查您的MySQL版本,如果您支持innoDB,然后检查linux上的MySQL配置文件(/etc/my.cnf或/etc/MySQL/my.cnf)(Windows我不知道)是否使用“skip innoDB”参数禁用innoDB。某些配置禁用了innoDB支持,因为使用了大多数RAM,

    显示引擎
    告诉您innoDB由于任何原因无法启动。 您必须打开错误日志(检查
    显示变量,如'error\u log'
    ):


    并找出InnoDB无法启动的原因。然后修复它。

    您最初是如何安装mysql的?为您的操作系统预制包(xamp/wamp,操作系统包?)。禁用/不包括innodb的预制包是非常罕见的。不,它是debian-squeeze-6.0。它是几个月前安装在服务器上的,直到今天下午,该项目运行良好。我一直在考虑日志文件太大或类似的问题,但似乎不是这样。这个问题更适合serverfault而不是如此吗?在大多数罕见的情况下,可以在mysqld exec上发送skip innodb参数,如果使用Linux,请检查rc.d或init.d脚本。如果你使用Windows,请检查mysqld是如何调用的。我应该提到我的InnoDB在今天之前工作得很好。因此,我们没有触摸my.cnf,而是检查:里面没有“skip innodb”参数。请执行
    ps auxwww | grep mysqld
    并查看是否使用skip innodb参数手动启动。
    mysql> show variables like 'log_error';
    +---------------+--------------------------+
    | Variable_name | Value                    |
    +---------------+--------------------------+
    | log_error     | /var/log/mysql/error.log |
    +---------------+--------------------------+
    1 row in set (0.00 sec)