数据从MySQL数据库中消失[关闭]

问题描述 投票:-2回答:1

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

java mysql jdbc commit
1个回答
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
  • 实现(例如)获取某些表的定期快照,然后您可以使用它们进行后续分析。
© www.soinside.com 2019 - 2024. All rights reserved.