2009-08-13 4 views
7

私は過去にはあまり微調整をしていないので、これは比較的簡単かもしれませんが、私は問題に取り組んでいます。問題を変更するinnodb_log_file_size

  1. 停止MySQLの
  2. 編集my.cnfのはしかし、すべてのInnoDBのテーブルが持つ細かいib_logfile0/1
  3. スタートのMySQL

開始を外し

  • innodb_log_file_size変更):これは私が何をすべきかです.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 '[email protected]' 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' 
    

    その私はそれを修正するまで、同じエラーのちょうどスパム

    それを再作成した後、それが起動しませんでしたログファイルは同じ場所で探している必要があります。

  • 答えて

    15

    まず、InnoDBデータファイル内の任意のチャージの前に、13.2.5. Adding, Removing, or Resizing InnoDB Data and Log Filesと書かなければなりません。

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

    エラーメッセージ

    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のサイズを変更し、古いファイルを削除いけないことで引き起こされます。おそらく、変更後に初めてmysqldを実行したときに ib_logfile0/1を削除するのを忘れていた可能性があります。メッセージ

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

    は、あなたが(ib_logfile Sを除去することで)この問題を解決することを示しています。しかし、それらを削除すると、別の問題が発生します。 XXXX \ User.frmのデータが壊れているか、InnoDB Engineの問題があります。

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

    show variables like "%inno%"; 
    

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

    +0

    なぜdonwvote?どうすればそれを改善できますか? –

    +0

    完全シャットダウンを推奨しますので、最初に 'SET GLOBAL innodb_fast_shutdown = 0;' – KCD

    1

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

    0

    もの:

    • そのサイズのログファイルを作成するには、デバイスに十分な空き容量はありますか?この現象は、完全なデバイスから発生している可能性があります。
    • ログファイルが間違った設定で作成されていますか?
    • ログファイルへのパスが絶対パスとして表示されません。あなたのドライブにib_logfile0が含まれている他の場所があるかどうか確認してください。愚かなバグかもしれない。
    +0

    十分なスペースがあります。 (約250g空き) ログファイルはどこにも存在しないスタートアップを実行した後はまったく作成されません。 ルート上でib_logfile *の検索が行われましたが、ib_logfile *を削除した唯一の場所が戻ってきました。 – savageguy

    0

    あなたはinnodb_log_file_sizeフィールドを編集するためにSQLクライアントを使用してみましたか?

    個人的に私は、私はあなたが間違ったログファイルを削除することを疑うSQuirreL

    +3

    のinnodb関連フィールドをクライアント内から編集することはできません。それらはmy.cnfで編集する必要があり、サービスの再起動時に新しい値として使用されます。 –

    0

    が好きです。他のib_logfile *ファイルを調べてください。おそらくあなたはinnodb_log_group_home_dirを使用していますか?

    この場合は、datadirではなくib_logファイルを削除してください。

    関連する問題