我是ocd的人,我想我不小心在mysql中丢弃了一些东西。

问题是我大约50个数据库,我无法手动检查一切:(

有没有办法检查这些变化吗?我试图看看/ var / lib / mysql中的时间戳,但它没有帮助,我正在查看目录时间戳。

我也跑了:

SELECT table_schema,table_name,update_time FROM information_schema.tables WHERE update_time > (NOW() - INTERVAL 1 day)

它只返回的数据库在最近几秒钟内更改。

有帮助吗?

解决方案

在与信息_schema.tables表周围有很多迷人的时候,我终于发现了解决问题的答案 - 更新时间不适用于InnoDB。请参阅points 在这里 .out和ajacian81。

您可以执行此操作的唯一方法是实现日志表(如bill karwin所建议的,有点a mysql / database guru)。

我可以想到的唯一其他事情是使用备份并使用diff程序比较来自当前和备份数据库的查询的文本输出。我知道的可怕,但有工具如果重要的是,可以执行此操作。有MySQL自己的(MySqldiff - 在公用事业中),你可以尝试 liquibase flyaway (我认为有这个功能)或谷歌”数据库diff程序mysql

我也发现了这个 post 有用在意识到信息_schema表是动态的。

也许我也有点强迫(不能让它走!:-)),但我也找到了此线程 - 通过夹克查看答案 - 如果您真正需要此功能,请佩塞卡可能是前进的方式。但是,对于您的特定情况来说显然为时已晚。我认为这是你的备份: - (。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top