テーブルを.sqlファイルにダンプせずにib_logfile0とib_logfile1をフラッシュし、削除してから再挿入する方法はありますか?誰かが顧客メモのテーブルにいくつかのプレーンテキストのクレジットカード番号を入力しました。それは私のPCIスキャンで出てきて、私はそれらをテーブルから削除しましたが、それらはまだログファイルに存在しています:(
2つの方法があります
MySQLを正常に停止します。エラーログを確認し、正常にシャットダウンされたことを確認してください。
Ib_logfile0とib_logfile1をdatadirから移動します(ロールバックする必要がある場合に備えて保存します)
MySQLを起動します。 InnoDBはREDOログファイルがないことに気づき、空のログファイルを作成します。
InnoDBを次のようにクリーンアップできます。
回復するものがないため、クラッシュ回復は行われません。
MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS} -h127.0.0.1 -P3306 --protocol=tcp"
SQL="SET GLOBAL innodb_fast_shutdown = 0"
mysql ${MYSQL_CONN} -ANe"${SQL}"
mysqladmin ${MYSQL_CONN} shutdown
cd /var/lib/mysql
rm -f ib_logfile*
service mysql start
二重書き込みバッファーからクレンジングされた残留データページが必要な場合は、以前の投稿を参照してください ibdata1をゼロ/ヌルなどで埋めるか、テーブルのテーブルスペースを変更してください