Mysql SQLSTATE[42000]:语法错误或访问冲突:1286未知表引擎';InnoDB';
你们中的一些人可能会说“在其他线程中有很多答案”或“谷歌搜索”。但实际上我没有找到答案 我正在使用symfony开发一个PHP/MySQL项目,由于未知的原因(意思是“我没有写任何PHP行”),我得到了这个错误“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”的实例。甚至连“不
有些人建议转储数据库,重新编译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)