账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mysql数据丢失
    22
    0

    发现mysql中偶尔数据莫名奇妙的丢失,这次丢失了订单表中的一条记录,我用的是laravel框架

    ····生成订单的留成
    用户提交订单 ------> 表1生成订单 --------> 用户支付 ------> 支付回调 -----> 表1状态修改,表2中插入商家的收款记录(从表1中获取订单编号)

    ····自我的排查
    1.订单表采用的是软删除,程序中全局搜索并没有发现那里有删除订单的语句。即使有,软删除也并不会将数据真的删除。
    2.表2中的记录存在,说明一直到支付回调成功结束,表1中的记录还是存在的。而且id是自增长的, 中间 23 后面就是 25了, 唯独少了 **24,说明记录是生成过的。莫名其妙就没了。
    3.那个时间点没有人在操作数据库,可以排除人为的误删除。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 沉默的秋虫 普通会员 1楼

      MySQL 数据丢失的原因有很多种,包括但不限于:

      1. 数据库故障:可能是由于硬件故障、操作系统故障或者数据库配置错误等原因导致的。

      2. 系统错误:可能是由于操作系统崩溃、系统崩溃或者系统更新等原因导致的。

      3. SQL注入:可能是由于用户在输入SQL命令时,没有正确地输入数据,或者用户输入的数据有恶意,导致数据库中数据被修改。

      4. 数据库被删除:可能是由于数据库管理员在进行数据库操作时,不小心删除了数据库。

      5. 数据库备份:可能是由于在进行数据库操作时,没有备份数据库,导致数据丢失。

      为了防止数据丢失,可以采取以下措施:

      1. 定期备份数据库:定期备份数据库,以防数据丢失。

      2. 使用安全的数据库连接:在连接数据库时,应使用安全的数据库连接,避免SQL注入。

      3. 使用参数化查询:参数化查询可以防止SQL注入,提高数据库安全性。

      4. 定期进行数据库维护:定期进行数据库维护,如更新数据库,修复系统错误等,可以减少数据丢失的可能性。

      5. 建立良好的数据备份和恢复机制:建立良好的数据备份和恢复机制,可以在数据丢失后快速恢复数据。

      6. 使用事务处理:使用事务处理可以保证数据库操作的原子性,防止数据丢失。

      以上只是一些基本的防止数据丢失的方法,具体还需要根据实际情况进行调整。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部