解決した

MySQL / InnoDBがLinodeサーバでの作業を停止する

サーバー

私のMySQLサーバは起動しませんでした。 私がerror.logファイルをチェックすると、これが見つかりました。 私は何をすべきかお勧めしますか?

151113  6:59:53 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
151113  6:59:53 [Note] Plugin 'FEDERATED' is disabled.
151113  6:59:53 InnoDB: The InnoDB memory heap is disabled
151113  6:59:53 InnoDB: Mutexes and rw_locks use GCC atomic builtins
151113  6:59:53 InnoDB: Compressed tables use zlib 1.2.3.4
151113  6:59:53 InnoDB: Initializing buffer pool, size = 128.0M
151113  6:59:53 InnoDB: Completed initialization of buffer pool
InnoDB: Error: checksum mismatch in data file ./ibdata1
151113  6:59:53 InnoDB: Could not open or create data files.
151113  6:59:53 InnoDB: If you tried to add new data files, and it failed here,
151113  6:59:53 InnoDB: you should now edit innodb_data_file_path in my.cnf back
151113  6:59:53 InnoDB: to what it was, and remove the new ibdata files InnoDB created
151113  6:59:53 InnoDB: in this failed attempt. InnoDB only wrote those files full of
151113  6:59:53 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
151113  6:59:53 InnoDB: remove old data files which contain your precious data!
151113  6:59:53 [ERROR] Plugin 'InnoDB' init function returned error.
151113  6:59:53 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
151113  6:59:53 [ERROR] Unknown/unsupported storage engine: InnoDB
151113  6:59:53 [ERROR] Aborting

151113  6:59:53 [Note] /usr/sbin/mysqld: Shutdown complete

Progress 100%

一番いい

回答

サーバー

私はちょうどdmesgログに " mysql respawning too fast "というエラーを表示していました。

他の場所から読んだところでは、あなたが見つけたものを探し出しました。これは、InnoDBのメタデータファイルの何らかの破損を指摘していると思います。 InnoDBは、トランザクション/ロールバックの完全性とプライマリ - 外部キーの完全性を保証するようなことを行います。 それは "checksum mismatch"エラーがあなたに警告するものです。

どのようにmysqldを起動しているのかは言いませんが、/ /etc/init.d/mysqld start / service mysqld startまたはservice mysqld startどちらかでいくつかの亜種を使用している可能性があります。 代わりにコマンドとして明示的にデーモンを実行してください:

sudo /usr/sbin/mysqld --innodb_force_recovery 0

そしてなぜあなたがそれをやっているか分かっている限り、プロセスが始まるまで--innodb_force_recoveryのゼロ値を--innodb_force_recovery

警告: innodb_force_recoveryパラメータは、mysqldがInnoDBストレージ内のチェックサムエラーを「強制的に修正」しようとする度合いを決定します。 InnoDBはこれを修正するためにますます劇的なことを行うため、問題を悪化させたり、後でインデックスを再構築する必要があります。

mysqldを特定の番号、例えば2で再起動できないときは、エラーメッセージを3増やす前に検索して、正しいことを確実に実行できるようにする必要があります。 私はあなたが得るすべてのエラーの専門家ではないので、私はすべての例外条件に対してフィードバックを提供することはできません:私が言っているのは、-- --innodb_force_recoveryを注意して使用することです!