inception icon indicating copy to clipboard operation
inception copied to clipboard

目标mysql 设置为autocommit=0时,执行无法成功

Open Mount565 opened this issue 6 years ago • 4 comments

当目标mysql关闭autocommit时,无法执行成功。备份服务器关闭autocommit时无法备份成功。

clipboard

inception 在备份状态挂起。我猜是没有commit, 不产生binlog, 备份功能在等待dump binlog 。

Mount565 avatar Mar 13 '18 02:03 Mount565

我猜不会有人回复。。。。

Mount565 avatar Mar 14 '18 01:03 Mount565

我回答了, 但不能解决你的问题, 国内开源项目, 不好做啊! 观念和生态问题。中兴事件能不能引起大家的警醒呢?!

slieer avatar Apr 30 '18 03:04 slieer

我没有测试是否是因为autocommit的原因,如果确定是这样的话,可以按如下方式解决: 可以修改源码sql/sql_parse.cc文件,在函数mysql_check_binlog_format最后return之前添加

    sprintf(set_format,"set session autocommit=on;");
    if (mysql_real_query(mysql, set_format, strlen(set_format)))
    {
        my_message(mysql_errno(mysql), mysql_error(mysql), MYF(0));
        DBUG_RETURN(ER_NO);
    }

    DBUG_RETURN(false);

按上述方法可以添加各种操作前的set项设定,须注意set范围为session。

hanchuanchuan avatar Jun 12 '18 03:06 hanchuanchuan

好的,有空试一下,谢谢

Mount565 avatar Jun 12 '18 13:06 Mount565