3

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

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

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

  1. 重启 MySQL
  2. 停止 MySQL,删除 ib_logfile0 和 ib_logfile1,启动 Mysql
  3. 做一个“显示引擎”。此命令不返回“InnoDB”实例。甚至没有“不活跃”(很奇怪,对吗?)。
  4. (甚至更奇怪)PHPMyAdmin 显示所有表,除了使用 InnoDB 的表显示“使用”而不是“InnoDB”。MyISAM 表没有问题。

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

4

2 回答 2

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 启动失败的原因。然后修复它。

于 2016-01-03T18:15:42.273 回答
0

首先检查你的 MySQL 版本,是否支持 innoDB,其次检查 linux 上的 mysql 配置文件(/etc/my.cnf 或 /etc/mysql/my.cnf),(Windows 我不知道)是否禁用了 innodb带有“skip-innodb”参数。某些配置禁用了对 innoDB 的支持,因为使用了大部分 RAM,

于 2012-05-04T15:24:00.793 回答