数据从MySQL数据库中删除

时间:2019-04-27 05:17:19

标签: java mysql jdbc commit

我有一个Java swing应用程序,它可以连接到MySQL数据库并完全正常地执行事务。还有为交易生成的单数。数据确实在大多数时间都已提交,没有任何问题。但是在某些情况下,在某些情况下,先前提交的数据会从数据库中完全清除掉,并且一个数字还会回滚。例如,如果我用一个发票编号从1到200的发票来做发票,那么第二天早上我查看销售报告时,它显示ID范围从1到100的交易。其余数据丢失。但是,由于我已经打印了从1到200的所有发票的发票副本,因此我确信交易确实已经发生。 MySQL中有什么我需要注意的吗?升级到MySQL版本8会有所帮助吗?我担心机器中存在某种恶意软件,因此我什至加强了防病毒功能,但没有帮助。我还设置了非常强的MySQL DB密码。似乎没有什么能阻止这种情况的发生。

1 个答案:

答案 0 :(得分:2)

  

例如,如果我用一个向上的发票编号(从1到200)来处理发票,第二天早上我查看销售报告时,它显示ID为1到100的交易。其余数据丢失。但是,由于我已经打印了所有1到200张发票的发票副本,因此我确信交易确实已经发生。

您所说的内容不能证明交易已落实。一种可能性是发票是在交易期间打印的。即在您提交之前。

如果不检查您的代码,我们将无法消除这种可能性。可能还有其他许多可能性。

  

MySQL中是否需要注意什么?

我知道MySQL中没有任何东西会导致已提交的事务自发回滚。

  

将升级到MySQL版本8帮助吗?

很有可能不会有所帮助。更重要的是,如果您不知道真正的原因,您将不会真正确定它的作用。


以下是一些可能的解释。可能还有其他人。

  1. 破坏您的代码;例如见上文。
  2. 某些计划任务(您可能已经忘记或不知道)中存在错误。
  3. 某些问题正在还原数据库的旧版本。
  4. 以前的员工/开发人员在您的代码中留下了“定时炸弹”。
  5. 黑客(或前雇员或当前雇员)可以访问系统并“与您聊天”。
  6. 恶意软件/病毒(尽管一般恶意软件不太可能导致这种行为)。请注意,如果您已经被感染,则“收紧” AV可能无济于事。
  7. 一些我从未听说过的奇怪的MySQL错误。

我建议类似的东西

  • 检查系统的所有帐户是否安全,并关闭所有不应该存在的帐户,
  • 检查系统访问日志等是否有未经授权的访问或在意外时间访问的迹象
  • 使用MySQL企业审核-https://dev.mysql.com/doc/refman/8.0/en/audit-log.html
  • 实现一些功能(例如)对某些表进行定期快照,然后将其用于以后的分析。