ホームページ  >  記事  >  データベース  >  mysql が起動直後にシャットダウンする問題 (ibdata1 ファイルの破損が原因) を解決するための詳細な紹介

mysql が起動直後にシャットダウンする問題 (ibdata1 ファイルの破損が原因) を解決するための詳細な紹介

黄舟
黄舟オリジナル
2017-03-27 13:18:032140ブラウズ

次のエディターは完璧な解決策をもたらしますmysql起動直後にシャットダウンする問題(ibdata1ファイルが破損しているため)編集者はこれが非常に優れていると考えているので、参考として共有します。しばらくの間、MySQL がコンピューター ルームのサーバー上で実行されているので見てみましょう。非常に奇妙な現象が突然現れました:

再起動しても回復できません! 正確な状況は次のとおりです: mysql は起動直後にシャットダウンされます

次のように mysql エラー ログを表示します:

160920 22:41:41 mysqld_safe Starting mysqld daemon with databases from /home/MysqlData/
2016-09-20 22:41:41 0 [Note] /Data/app/mysql5.6.25/bin/mysqld (mysqld 5.6.25-log) starting as process 32372 ...
2016-09-20 22:41:42 32372 [Note] 
Plugin 'FEDERATED' is disabled.
2016-09-20 22:41:42 32372 
[Warning] option 'innodb-write-io-threads': unsigned value 1000 adjusted to 64
2016-09-20 22:41:42 32372
 [Warning] option 'innodb-read-io-threads': unsigned value 1000 adjusted to 64
2016-09-20 22:41:42 32372 [Note] InnoDB: Using atomics to ref count buffer pool pages
2016-09-20 22:41:42 32372 [Note] InnoDB: The InnoDB memory heap is disabled
2016-09-20 22:41:42 32372 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-09-20 22:41:42 32372 [Note] InnoDB: Memory barrier is not used
2016-09-20 22:41:42 32372 [Note] InnoDB: Compressed tables use zlib 1.2.3
2016-09-20 22:41:42 32372 [Note] InnoDB: Using CPU crc32 instructions
2016-09-20 22:41:42 32372 [Note] InnoDB: Initializing buffer pool, size = 1.0G
2016-09-20 22:41:42 32372 [Note] InnoDB: Completed initialization of buffer pool
2016-09-20 22:41:42 32372 [Note] InnoDB: Highest supported file format is Barracuda.
2016-09-20 22:41:42 32372 [Note] InnoDB: Log scan progressed past the checkpoint lsn 20293587957
2016-09-20 22:41:42 32372 [Note] InnoDB: 
Database was not shutdown normally!
2016-09-20 22:41:42 32372 [Note] InnoDB: Starting crash recovery.
2016-09-20 22:41:42 32372 [Note] InnoDB: Reading tablespace information from the .ibd files...
2016-09-20 22:41:42 32372 [Note] InnoDB: Restoring possible half-written data pages 
2016-09-20 22:41:42 32372 [Note] InnoDB: from the doublewrite buffer...

InnoDB:リカバリ中: 番号 20293596130 までスキャンされました

2016-09-20 22:41:42 32372 [Note] InnoDB: Starting an apply batch of log rec
ord
s to the database...
InnoDB: Progress in percent: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 
90 91 92 93 94 95 96 97 98 99 
InnoDB: Apply batch completed
InnoDB: Last MySQL binlog file 
position
 0 136254, file name mysql-bin.00
001
3
2016-09-20 22:41:43 32372 [Note] InnoDB: 128 rollback segment(s) are active.
2016-09-20 22:41:43 32372 [Note] InnoDB: Waiting for purge to start
2016-09-20 22:41:43 7f77a9edd700 InnoDB: Assertion failure in thread 140151928772352 in file trx0purge.cc line 699
e
innodb: 失敗したアサーション: PURGE_SYS- & GT; = Purge_TRX_NO

RREEE
気づいたら、データベースを再起動できない理由は、ibdata1 ファイルが破損しており、再起動後に正常に復元できないためです

解決策:


回復手順をスキップする必要があります

。 cnf ファイルを作成し、my.cnf の [mysqld] に追加します: innodb_force_recovery = 6

innodb_purge_threads = 1
説明:


inno db_force_recovery は 1 ~ 6 に設定できます。大きい数字には、以前のすべての数字が含まれます


の影響 対応する数字の意味:


1-----(SRVFORCEIGNORECORPT): 検出された破損ページを無視します
2----- (SRVFORCENOBACKGROUND): メインスレッドをフルに実行する必要がある場合、メインスレッドが実行されないようにします。
3-----(SRVFORCENOTIRXUNDO): トランザクションのロールバック操作を実行しません。 ---(SRVFORCENOIBUFMERGE): 挿入バッファのマージ操作を実行しません。 -(SRVFORCENOUNDOLOGSCAN): REDO ログをチェックしません。

6-----(SRVFORCENOLOG_REDO):ロールフォワード操作は実行しないでください。


mysqlを再度起動すれば問題ありません。~


それでも起動できない場合は、データディレクトリdatafile内のibdata1、ib_logfile*およびその他のファイルを削除する必要があります。

起動後に MySQL データベースをエクスポートし、再度復元します。

以上がmysql が起動直後にシャットダウンする問題 (ibdata1 ファイルの破損が原因) を解決するための詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。