web-dev-qa-db-ja.com

不明なテーブルエンジン「InnoDB」

最近、優れたハードウェアがあればmysqlのパフォーマンスを最大化できることがわかりました。 InnoDBを使用していたので、my.iniに追加の構成を追加しました

新しく追加された構成は次のとおりです。

innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 2G
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 120

次に、すべてのサービスを再起動します。しかし、プログラムを使用すると、「不明なテーブルエンジン 'InnoDB'」というエラーが発生しました。

私がこの問題を解決しようとしたこと:

  1. ログファイルを削除してサービスを再起動しましたが、まだエラーが発生しました。
24
rechie

他の解決策は私の問題を解決しませんでした。構成を調整した後、InnoDBエンジンが無効になりました。

Mysql data dirの破損したib_ *ログファイルを削除すると問題が解決し、InnoDBに2Gバッファープールを使用できるようになりました。 http://www.turnkeylinux.org/forum/support/20090111/drupal-6-problem -enable-innodb#comment-131

20
aaronbauman

ログファイルの削除を再試行し、サービスを再起動しましたが、機能します! ただし、innodbがコンパイルされない可能性があるため、2Gの割り当てに注意してください。1Gを使用してください 2Gが機能しない場合。

11
rechie

私もこの問題に遭遇しました。問題は、サーバーが変数innodb_buffer_pool_sizeを使用していたよりも多くのメモリをInnoDBに割り当てていたことです。 MySQLは、これについてログにメモリを割り当てることができないことについて文句を言いませんでした。

8
Sean McCleary

私はそれらすべて(および他の多く)を試しましたが、動作する1つの方法は次のとおりです。

  • MySqlサーバーを停止する
    /etc/init.d/mysql stop
  • ログファイルを削除する
    rm ib_logfile0 ib_logfile1
  • InnoDBファイルの名前を変更します(再作成されるため他に機能しない場合)mv ibdata1 old_ibdata1
  • /etc/mysql/my.cnfにこの設定があります->これを指定しなくても、MySqlはデフォルト値を使用します。

    [mysqld]
    datadir=/data/mysql/data
    socket=/var/run/mysqld/mysqld.sock
    
    #Not a must to define the following
    innodb_log_file_size=1G
    innodb_file_per_table=1
    innodb_flush_method=O_DIRECT
    innodb_buffer_pool_size=1G
    innodb_data_file_path=ibdata1:10M:autoextend
    innodb_lock_wait_timeout=18000
    
  • MySqlサーバーを起動
    /etc/init.d/mysql start

4
biniam

My.cnfファイルを完全にマングルする場合のもう1つのオプションは、そこにあるmysqlインストールのデフォルトの構成に置き換えることです。 Linuxの場合:

次のオプションがあります。

/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-small.cnf

これをインストールする例を次に示します。

#backup original config
mv /etc/my.cnf{,.bak}

#copy new my.cnf from template
cp /usr/share/mysql/my-large.cnf /etc/my.cnf

これらのオプションの詳細については、 http://dev.mysql.com/doc/mysql/en/option-files.html で入手できます。

1
ChrisN

バックアップから復元するときにこの問題がありました。問題は、my.iniで少し異なる設定があったことです。したがって、誰かがこの問題を受け取った場合は、必ず同じ設定(my.iniをコピー)を設定し、MySQLサービスを停止してから、データフォルダー全体を復元してから、MySQLサービスを再度開始してください。

0
Nux