MySQLで特定の時点にロールバックする方法

MySQLのリカバリツールを使って特定の日付や時刻までのロールバックを行うことができます。手順は次のとおりです。

  1. まず、MySQLサービスを停止します。MySQLサービスの停止には、以下のコマンドを使用します。
sudo systemctl stop mysql
  1. 次に、以下のコマンドを使用してデータベースのBinlogファイルを確認します。
ls -l /var/lib/mysql/

binlog から始まるファイル群があり、すべてのデータベースの変更ログが記録されています。

  1. ロールバックを行いたい時点のbinlogファイルと位置を特定します。次のコマンドを使用してbinlogファイルのリストを表示できます。
mysqlbinlog --no-defaults --base64-output=decode-rows --verbose --start-position=<start_position> <binlog_file> | less

は、戻りたい時点より直前のログ位置のうち最も新しいもので、はそれに対応するbinlogファイルです。

  1. 以下のコマンドを使用して、指定した時点まで戻します。
sudo mysqlbinlog --start-position=<start_position> <binlog_file> | sudo mysql -u root -p

ここで、とは前の手順であなたが探したbinlogファイルと位置です。

  1. 最後に、MySQL サービスを再起動します。
sudo systemctl start mysql

これで、指定した時点に正常に戻りました。

bannerAds