7

私は過去に多くの調整を行ったことがないので、これは比較的簡単かもしれませんが、問題が発生しています。これが私がすることです:

  1. MySQLを停止します
  2. my.cnfを編集します(変更innodb_log_file_size
  3. ib_logfile0/1を削除します
  4. MySQLを起動します

正常に起動しますが、すべてのInnoDBテーブルに.frmファイルが無効なエラーであるというエラーがあり、ステータスはInnoDBエンジンが無効になっていることを示しているので、明らかに戻って変更を削除すると、すべてが再び機能します。

試した他のすべての変数を変更することはできましたが、ログファイルを削除してもInnoDBが起動しない理由がわかりません。私は何かが足りないのですか?

ありがとう。

編集:以下のログの貼り付け-ログファイルがない場合でも、ログファイルが見つかっているように見えますか?

シャットダウン:

090813 10:00:14  InnoDB: Starting shutdown...
090813 10:00:17  InnoDB: Shutdown completed; log sequence number 0 739268981
090813 10:00:17 [Note] /usr/sbin/mysqld: Shutdown complete

変更後の起動:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
090813 11:00:18 [Warning] 'user' entry 'root@XXXXX.com' ignored in --skip-name-resolve mode.
090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.81-community-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Edition (GPL)
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm'
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm'
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm'

私がそれを修正するまで、それは同じエラーの単なるスパムです

ログファイルを再作成した後に起動したので、私と同じ場所を探している必要があります。

4

5 に答える 5

15

まず、InnoDBデータファイルを変更する前に、13.2.5を読む必要があることを指摘する必要があります。InnoDBデータおよびログファイルの追加、削除、またはサイズ変更

あなたが指摘した手順はほぼ正しいです。このタイプの変更の前にバックアップすることをお勧めします。あなたに何が起こったのか見てみましょう:

エラーメッセージ

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!

innodb_log_file_sizeのサイズを変更し、古いファイルを削除しないことが原因です。ib_logfile0/1おそらく、変更後にmysqldを初めて実行したときにdeを削除するのを忘れていました。メッセージ

090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections.

は、この問題を解決したことを示しています(ib_logfilesを削除することにより)。しかし、それらを削除すると、他の問題が発生します。XXXX \ User.frmのデータが破損しているか、InnoDBエンジンに問題があります。

InnoDBが有効になっていることを確認するには、mysqlプロンプトで次のコマンドを実行します。

show variables like "%inno%";

結果リストには「have_innodb = YES」が含まれている必要があります。InnoDBを開始できない場合(値はNOまたはDISABLED)、Incorrect information in fileメッセージが表示されることがあります。
-これが問題である場合は、InnoDBエンジンが正しく起動しないようにする他の何かを変更しました(datadirのアクセス許可またはtmpdirのアクセス許可、他のinnodb変数(完全なログを表示しなかった)など)。変更を確認するか、.cnfファイルを配置します(前後)。
-InnoDBエンジンの場合はYES、テーブルを修復する必要があります。(この場合は、コメントを追加してください。ここに情報を追加します。怠惰すぎて今はできません。)

于 2009-08-20T17:55:28.110 に答える
1

エラーの最初の行は、ib_logfile0を削除していないことを示しています。正しい名前を変更/削除していることを確認できますか?

于 2009-08-18T20:03:08.327 に答える
0

チェックすること:

  • そのサイズのログファイルを作成するのに十分なスペースがデバイスにありますか?この動作は、フルデバイスから発生している可能性があります。
  • ログファイルが間違った設定で作成されていませんか?
  • ログファイルへのパスは絶対として表示されません。ニヤリと言うだけで、ドライブ上にib_logfile0を含む他の場所があるかどうかを確認してください。ばかげたバグかもしれません。
于 2009-08-19T12:42:55.163 に答える
0

SQLクライアントを使用してinnodb_log_file_sizeフィールドを編集してみましたか?

個人的にはSQuirreLが好きです

于 2009-08-24T16:20:05.623 に答える
0

間違ったログファイルを削除したと思われます。他のib_logfile*ファイルを探してください。多分あなたはinnodb_log_group_home_dirを使用していますか?

その場合は、datadirではなくib_logfilesをそこから削除したことを確認してください。

于 2009-09-30T14:03:56.107 に答える