有没有办法刷新 ib_logfile0 和 ib_logfile1 而不将表转储到 .sql 文件,删除,然后重新插入?有人在客户备注表中输入了几个纯文本信用卡号。它出现在我的 PCI 扫描中,我将它们从表中删除,但它们仍然存在于日志文件中:(
您可以让 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
Run Code Online (Sandbox Code Playgroud)
如果您想从双写缓冲区中清除残留的数据页,请参阅我的旧帖子用零/空/等填充 ibdata1 或更改表的表空间
有两种方式
优雅地停止 MySQL。检查错误日志并确保它是正常关机。
将 ib_logfile0 和 ib_logfile1 从 datadir 中移出(保存它们以防您需要回滚)
启动 MySQL。InnoDB 会注意到没有 REDO 日志文件,并会创建空的。
| 归档时间: |
|
| 查看次数: |
43241 次 |
| 最近记录: |