3

「他のスレッドにたくさんの回答があります」または「Googleで検索してください」と言う人もいるかもしれません。しかし、実際には答えが見つかりませんでした。

symfony を使用して PHP / MySQL プロジェクトを開発していますが、不明な理由 (「php 行を書いていない」という意味) で、「SQLSTATE[42000]: Syntax error or access violation: 1286 Unknown table engine」というエラーが発生しました。 InnoDB'".

私はすでにこれらの解決策を試しました:

  1. MySQL を再起動します
  2. MySQL を停止し、ib_logfile0 と ib_logfile1 を削除し、Mysql を起動します。
  3. 「エンジンの表示」を行います。このコマンドは、「InnoDB」のインスタンスを返しません。「NOT ACTIVE」でさえありません(変ですよね?)。
  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はわかりません)。 「skip-innodb」パラメーターを使用します。ほとんどのRAMを使用するため、一部の構成ではinnoDBサポートが無効になりました。

于 2012-05-04T15:24:00.793 に答える