最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

关于mysql主从复制自增长列

来源:懂视网 责编:小采 时间:2020-11-09 16:56:04
文档

关于mysql主从复制自增长列

关于mysql主从复制自增长列:mysql 现有两台mysql服务器A和BA:auto_increment_offset = 2 auto_increment_increment = 2 binlog_format=STATEMENTB:auto_increment_offset = 1 auto_increment_increment = 2 A和B都有如下表,建表语句
推荐度:
导读关于mysql主从复制自增长列:mysql 现有两台mysql服务器A和BA:auto_increment_offset = 2 auto_increment_increment = 2 binlog_format=STATEMENTB:auto_increment_offset = 1 auto_increment_increment = 2 A和B都有如下表,建表语句

mysql

现有两台mysql服务器A和B
A:auto_increment_offset = 2
auto_increment_increment = 2
binlog_format="STATEMENT"
B:auto_increment_offset = 1
auto_increment_increment = 2

 A和B都有如下表,建表语句如下:

test | CREATE TABLE test (
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(45) DEFAULT NULL,
PRIMARY KEY (id)
ENGINE=InnoDB DEFAULT CHARSET=utf8

test1 | CREATE TABLE test1 (
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(45) DEFAULT NULL,
PRIMARY KEY (id)
ENGINE=InnoDB DEFAULT CHARSET=utf8

test表中数据如下:

+----+-------------------------------------
| id | title
+----+-------------------------------------
| 2 | 2
| 4 | 2
| 6 | efe4aee2-e721-11e5-a858-000c2952edc5
| 8 | 2016-03-11 08:31:18
| 10 | 2016-03-11 08:31:40
| 12 | 97621dc2-e722-11e5-a858-000c2952edc5
| 14 | aaaq
| 16 | aaaq
| 18 | 13
+----+-------------------------------------

现在在A服务器执行如下sql:
insert test1 select * from test where id >= 10

虽然mysql出了警告:
Unsafe statement written to the binary log

using statement format since BINLOG_FORMAT = STATEMENT.

但是我看到B服务器同步A服务器数据后显示如下:
+----+--------------------------------------+
| id | title |
+----+--------------------------------------+
| 10 | 2016-03-11 08:31:40 |
| 12 | 01b889cf-e721-11e5-9568-000c29aa710d |
| 14 | aaaq |
| 16 | aaaq |
| 18 | 13 |
+----+--------------------------------------+

这时候查看A服务器的binlog日志发现
BEGIN
/*!*/;

at 665994732

#160314 15:47:15 server id 136 end_log_pos 665994865 CRC32 0xeb828757 Query thread_id=1675059 exec_time=0 error_code=0
SET TIMESTAMP=1457941635/*!*/;
insert test1 select * from test where id >= 10
/*!*/;

at 665994865

#160314 15:48:38 server id 136 end_log_pos 665994896 CRC32 0x5a745662 Xid = 169785483
COMMIT/*!*/;

A服务器并未提示插入的数据自增长id是多少,为什么B服务器的数据和A服务器的
数据仍然一致。
按自己的理解,B服务器的数据应该是如下,因为是靠B服务器的自己自增长产生id。
+----+--------------------------------------+
| id | title |
+----+--------------------------------------+
| 1 | 2016-03-11 08:31:40 |
| 3 | 01b889cf-e721-11e5-9568-000c29aa710d |
| 5 | aaaq |
| 7 | aaaq |
| 9 | 13 |

求各位师兄解答下为什么,谢谢!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

关于mysql主从复制自增长列

关于mysql主从复制自增长列:mysql 现有两台mysql服务器A和BA:auto_increment_offset = 2 auto_increment_increment = 2 binlog_format=STATEMENTB:auto_increment_offset = 1 auto_increment_increment = 2 A和B都有如下表,建表语句
推荐度:
标签: 数据库 关于 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top