MySQLを起動できません

MySQLを起動できません

Debian システムを使用しています。パーティションがいっぱいになった後にmysqlを起動できません。 「エラー:/var/lib/mysqlパーティションがいっぱいです!」というメッセージが表示されます。

/var/lib/mysql で不要なデータフォルダの一部を削除することをお勧めします。そのため、不要な古いデータベースのフォルダを削除しました。

mysqldサービスを再起動しようとすると、次のエラーが発生します。

150218 10:09:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
150218 10:09:03 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full n$
150218 10:09:03 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use$
150218 10:09:03 [Note] Plugin 'FEDERATED' is disabled.
150218 10:09:03 InnoDB: The InnoDB memory heap is disabled
150218 10:09:03 InnoDB: Mutexes and rw_locks use GCC atomic builtins
150218 10:09:03 InnoDB: Compressed tables use zlib 1.2.7
150218 10:09:03 InnoDB: Using Linux native AIO
150218 10:09:03 InnoDB: Initializing buffer pool, size = 128.0M
150218 10:09:03 InnoDB: Completed initialization of buffer pool
150218 10:09:03 InnoDB: highest supported file format is Barracuda.
InnoDB: Log scan progressed past the checkpoint lsn 20417554120
150218 10:09:03  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 20419913007
150218 10:09:03  InnoDB: Error: page 24667 log sequence number 20425339296
InnoDB: is in the future! Current system log sequence number 20419913007.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.
150218 10:09:03  InnoDB: Error: page 530914 log sequence number 20426394124
InnoDB: is in the future! Current system log sequence number 20419913007.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.
InnoDB: 1 transaction(s) which must be rolled back or cleaned up
InnoDB: in total 6135 row operations to undo
InnoDB: Trx id counter is 574E00
150218 10:09:04  InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 150218 10:09:04  InnoDB: Error: page 248000 log sequence number 20425331738
InnoDB: is in the future! Current system log sequence number 20419913007.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html

my.cnf innodb_force_recovery = 1/2/3/4/5/6 1から始めて、上に次のコマンドを追加しながらmysqlを起動する必要があるとします。

みんな試してみましたが、何も得られませんでした。

誰でもどんなアイデアがありますか?

答え1

/var/lib/mysql が /root を埋めるときに非常に似た問題が発生しました。見るhttps://dba.stackexchange.com/questions/91575/moved-mysql-datadir-now-server-will-not-run さまざまな設定ファイルに隠されたパスが多すぎるため、追跡が困難になる可能性があるため、シンボリックリンクを使用してください。

答え2

データベースディレクトリ全体を削除すると、システムは一貫性を失います。ほとんどの場合、「ibdata *」と「ib_logfile *」にデータベースへの参照が残っている可能性が高くなります(データベースにInnoDBテーブルがあると仮定)。

「ログシーケンス番号は未来です」というエラーメッセージは、同様の不一致を示す別の信号です。

「innodb_force_recovery」(読み取り専用にする)を使用してMySQLサーバーを起動し、「mysqldump」を使用してデータをインポートして別の場所に保存できます。次に、データベースファイル(おそらく「/var/lib/mysql/data」の下のすべてのエントリ)を削除し、空の新しいMySQLインスタンス(「mysql_install_db」)をインストールしてダンプをロードします。これには、これらの不一致によるデータ損失が含まれる場合があります。

ディスク容量監視を設定することを忘れないでください!

関連情報