# mysql 主从复制开启gtid 问题

开启gtid 后 mybatis 拦截【

<span style="color: #000000;"> </span><span style="color: #646464;">@Signature</span><span style="color: #000000;">(method = </span><span style="color: #2a00ff;">"update"</span><span style="color: #000000;">, type = Executor.</span><span style="color: #7f0055; font-weight: bold;">class</span><span style="color: #000000;">, args = {MappedStatement.</span><span style="color: #7f0055; font-weight: bold;">class</span><span style="color: #000000;">, Object.</span><span style="color: #7f0055; font-weight: bold;">class</span><span style="color: #000000;">}),</span>

】

所有表必须支持事务 ，不然会报错

**跳过 gtid 错误<span style="background-color: rgb(255, 255, 255);">【<span style="color: rgb(224, 62, 45);">只限于数据不那么重要的】</span></span>，最好是把主数据库数据克隆一份重新导入从库。**

```bash
#!/bin/bash
GTID_UUID="f948cd3e-6d1a-11ef-9cb9-005056b226a6"
START=181910008
END=189908868
MYSQL_USER="root"
MYSQL_PASS="Crrcsf,123"

mysql -u$MYSQL_USER -h 10.73.94.84 -p$MYSQL_PASS -e "STOP SLAVE;"

for ((i=START; i<=END; i++)); do
  echo "Skipping GTID: $GTID_UUID:$i"
  mysql -u$MYSQL_USER -h 10.73.94.84  -p$MYSQL_PASS -e "
    SET  GTID_NEXT='$GTID_UUID:$i';
    BEGIN; COMMIT;
  "
done

mysql -u$MYSQL_USER -h 10.73.94.84 -p$MYSQL_PASS -e "
  SET  GTID_NEXT='AUTOMATIC';
  START SLAVE;
"


```