首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将表创建为select,即使使用了even一致性。

将表创建为select,即使使用了even一致性。
EN

Stack Overflow用户
提问于 2017-11-21 08:23:17
回答 1查看 2K关注 0票数 4

我有一个sql脚本,其中包含语句create tbl2 as select * from tbl;

此语句适用于版本5.7 (目前为5.7.19)的坞客mysql,即使启用了enforce一致性。来自船坞的相关线路包括:

代码语言:javascript
复制
image: mysql:5.7
command: --gtid-mode=ON --enforce-gtid-consistency=true

尽管文件明确规定:

由于只有在启用--增强-gtid-一致性时,才能记录事务安全语句,因此此处列出的操作不能与此选项一起使用: 创建桌子..。选择语句

对于google实例上的ERROR 1786 (HY000): Statement violates GTID consistency: CREATE TABLE ... SELECT.,同样的语句失败了。

show variables like '%gtid%'在docker和google实例上返回相同的结果( enforce_gtid_consistency在这两个实例中都是打开的)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-09 17:19:44

您看到的失败的主要原因是容器数据库中的log为NULL,尽管gtid_mode为on,enforce_gtid_consistency为on。因此,您必须运行具有log集的容器,另外设置此设置还需要设置服务器id。下面是运行容器的一个示例,您应该可以在其中复制错误--“error 1786 (HY000):语句违反GTID一致性: CREATE TABLE . SELECT”。

docker运行-d --名称=my-mysql --env="MYSQL_ROOT_PASSWORD=rootpassword123“--发布3306:3306 -卷=/u 01/mysql:/var/lib/ mysql/mysql-server:5.7.20 -gtid_mode=ON-env_gtid_consistency=ON-log-bin=mysql-bin-主信息存储库=表-中继-log-info-存储库=表-server-id=1

欢呼声拉杰

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47408361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档