V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
cjyang1128
V2EX  ›  MySQL

mysql 事务的一个问题

  •  
  •   cjyang1128 · 2015-09-25 10:34:05 +08:00 · 2472 次点击
    这是一个创建于 3126 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近遇到了一个很神奇的偶现的 bug 。我对两条 update 语句上了 transaction ,然后事务执行也成功了,没有发生回滚。然而最后的结果是只执行了第一条 update 语句。。。因为这个 bug 出现的概率特别低,很难偶现,所以这样的问题应该怎么排查比较好呢?比如说看哪些 log 可以看出来原因。求教~

    9 条回复    2015-09-28 13:37:26 +08:00
    tesion99
        1
    tesion99  
       2015-09-25 10:49:57 +08:00
    mysql log 或者 mysql error log ,看 my.cnf 里面是怎么配置的了
    zeayes
        2
    zeayes  
       2015-09-25 16:02:11 +08:00
    开了 bin-log ,可以看下里面执行的 sql 命令,确认一下是不是只执行了一次。
    better0332
        3
    better0332  
       2015-09-25 16:10:54 +08:00
    第二条执行失败有主动 rollback 吗?
    你确认用了 innodb 引擎吗?
    cjyang1128
        4
    cjyang1128  
    OP
       2015-09-25 17:47:49 +08:00
    @better0332 是 innodb
    cjyang1128
        5
    cjyang1128  
    OP
       2015-09-25 17:48:10 +08:00
    @better0332 是 innodb
    @zeayes 恩,已经在查看了,找到问题后再回复
    cjyang1128
        6
    cjyang1128  
    OP
       2015-09-25 18:34:37 +08:00
    @zeayes bin-log 里面确实有这条语句。所以。。。咋回事=-=
    gamexg
        7
    gamexg  
       2015-09-25 18:38:49 +08:00
    是不是其他的线程帮你改回去了?
    free9fw
        8
    free9fw  
       2015-09-25 22:42:32 +08:00
    @gamexg 极有可能
    cjyang1128
        9
    cjyang1128  
    OP
       2015-09-28 13:37:26 +08:00
    @gamexg
    @free9fw 我们找了一下目前的 sql ,涉及到这个字段更改的,只有这条 sql 。。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1306 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 17:38 · PVG 01:38 · LAX 10:38 · JFK 13:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.