我正在测试一些SQL命令,有时会不经意地擦除一列中的数据。
检索它的最简单方法是什么?
1.1。是否可以检索每个执行的命令及其相关输出的日志?
您建议采取什么最佳做法,以防止在不注意的情况下无意间更改数据?
幸运的是,我对原始数据集进行了备份,但我想知道是否有别的方法可以从备份重新开始。
最佳答案
您无法检索已删除的数据,除非通过备份进行还原。如果数据库很小,则定期转储(使用mysqldump
)就足够了。
The binlogs
应该记录每个命令以及时间戳。这样您就可以看到那里发生了什么。但是只记录命令,不记录输出。
我为以后防止这种情况的建议...
创建仅具有SELECT
权限或您希望其具有任何受限权限范围的新登录名,并将其用于测试。
不要在实时系统上玩。对活动数据库进行mysqldump
并将转储还原到测试计算机上,然后在其中运行。
如果数据库太大而无法转储,则还可以创建实时系统的只读副本,然后将其用于播放或在其上运行转储。
注意:保持mysql副本同步可能会带来问题。