标签: gtid

MySQL GTID一致性违规

我试图从select语句创建一个表,它给我一个GTID一致性违规. [HY000][1786] Statement violates GTID consistency: CREATE TABLE ... SELECT.

create TABLE tags_mentions as
    select t.*, st.ts, m.user_id_from, m.user_id_to from Tags as t join Mentions as m
        on t.status_id = m.status_id AND m.user_id_from != m.user_id_to
        left join Statuses as st on t.status_id = st.status_id;
Run Code Online (Sandbox Code Playgroud)

什么是GTID一致性,如何修复SQL语句以避免违规?

mysql sql gtid

13
推荐指数
3
解决办法
1万
查看次数

提交事务后,为什么MySQL`gtid_owned`会话变量总是为空?

我正在使用MySQL全局事务ID(GTID)测试一些工作,并且我很难获得最近的会话GTID.我启用了GTID(全局gtid_mode设置为ON_PERMISSIVE).根据该文件gtid_owned:

此只读变量包含一个列表,其内容取决于其范围.当与会话范围一起使用时,该列表包含此客户端拥有的所有GTID; ...

所以,在提交事务之后,我希望这个会话变量包含GTID; 但无论我做什么,它总是空着的.但是,gtid_executed每次我提交事务时全局都会发生变化,因此我知道GTID正在运行.

这是一个演示此问题的会话:

mysql> SELECT @@global.gtid_executed;
| a1c32161-89c4-11e8-856e-0242ac12001d:1-4 |

mysql> SELECT @@session.gtid_next;
| AUTOMATIC           |

mysql> SELECT @@session.gtid_owned;
|                      |

mysql> START TRANSACTION;

mysql> SELECT @@global.gtid_executed;
| a1c32161-89c4-11e8-856e-0242ac12001d:1-4 |

mysql> SELECT @@session.gtid_next;
| AUTOMATIC           |

mysql> SELECT @@session.gtid_owned;
|                      |

mysql> INSERT INTO ........

mysql> SELECT @@global.gtid_executed;
| a1c32161-89c4-11e8-856e-0242ac12001d:1-4 |

mysql> SELECT @@session.gtid_next;
| AUTOMATIC           |

mysql> SELECT @@session.gtid_owned;
|                      |

mysql> COMMIT;

mysql> SELECT @@global.gtid_executed;
| a1c32161-89c4-11e8-856e-0242ac12001d:1-5 …
Run Code Online (Sandbox Code Playgroud)

mysql gtid

7
推荐指数
1
解决办法
253
查看次数

MySQL使用GTID时出现错误1236

我想在启用 GTID 的情况下创建 Percona 服务器的副本,但当我显示从属状态时出现此错误:

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.'
Run Code Online (Sandbox Code Playgroud)

通常,我会停止我的从站,重置它,重置主站(在从站上),然后从主站获取新的 GTID_PURGED 值。但这一次,master 有一个非常不寻常的值,我不知道如何确定使用哪一个:

mysql> show master status\G
*************************** 1. row ***************************
             File: mysqld-bin.000283
         Position: 316137263
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 1570dee1-165b-11e6-a4a2-00e081e93212:1-3537,
c73f3ee7-e8d4-ee19-6507-f898a9930ccd:1-18609,
cdb70eaa-f753-ee1b-5c95-ecb8024ae729:1-2357789559:2357789561-2357790104:2357790106-2514115701:2514115703-2514115705:2514115707-2546512667
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

从具有新备份副本的从属设备中,我得到以下信息:

root@ubuntu:/var/lib/mysql# cat xtrabackup_binlog_info
mysqld-bin.000283       294922064       1570dee1-165b-11e6-a4a2-00e081e93212:1-3537,
c73f3ee7-e8d4-ee19-6507-f898a9930ccd:1-18609,
cdb70eaa-f753-ee1b-5c95-ecb8024ae729:1-2357789559:2357789561-2357790104:2357790106-2514115701:2514115703-2514115705:2514115707-2546400960
Run Code Online (Sandbox Code Playgroud)

另一件事是,在进行备份之前,我刚刚清除了主服务器上的二进制日志。自动 …

mysql replication percona gtid

6
推荐指数
1
解决办法
3万
查看次数

GTID 一致性:CREATE TEMPORARY TABLE 和 DROP TEMPORARY TABLE 只能在事务上下文之外执行

我的 Magento 版本是 2.2.3。我们使用的是 Google Cloud SQL 第二代实例。

运行索引命令时遇到错误

一般错误:1787 语句违反 GTID 一致性:CREATE TEMPORARY TABLE 和 DROP TEMPORARY TABLE 只能在事务上下文之外执行。函数或触发器中也不允许使用这些语句,因为函数和触发器也被认为是多语句事务。查询是:CREATE TEMPORARY TABLE IF NOT EXISTS catalog_product_index_eav_tempLIKE catalog_product_index_eav_tmp

mysql google-cloud-platform gtid magento2.2

3
推荐指数
1
解决办法
3938
查看次数

问:如何在Mysql工作台中将--set-gtid-purged = OFF设置为默认的Export参数?

Ive最近一直在使用Mysql Workbench,并且Export函数具有一个不需要的小烦人功能(当然,对我来说)。默认情况下,在GUI中将set-gtid-purged函数设置为AUTO,并且似乎每次您要导出时都没有此参数-您必须在Data Exports-Advanced选项中将其更改为OFF。更糟的是,该设置不会被记住。

是否想检查是否有人找到一种方法将我制作的每个数据库/连接永久设置为“关闭”?

我什至检查了wb_options.xml文件,并将功能设置为OFF,但是由于某种原因,这似乎并没有阻止它。

<value type="string" key="wb.admin.export.option:set-gtid-purged">OFF</value>
Run Code Online (Sandbox Code Playgroud)

谢谢。

mysql database gtid

2
推荐指数
3
解决办法
3576
查看次数