1

谁能解释两台服务器之间复制的mysql 5.5处理。

这是我的一张表的结构。

id int(10) unsigned NOT NULL PRIMARY KEY DEFAULT 'NULL' AUTO_INCREMENT
kot_no varchar(45) NOT NULL DEFAULT 'NULL'
emp_id int(10) unsigned NOT NULL FOREIGN KEY DEFAULT '0'
description varchar(45) NULL DEFAULT 'NULL'
created_date timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
created_by int(10) unsigned NOT NULL DEFAULT '0'
modified_date timestamp NOT NULL DEFAULT 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'
modified_by int(10) unsigned NULL DEFAULT '0'
state tinyint(1) unsigned NOT NULL DEFAULT '1'

在我的数据库中,每个表都有最后 5 列,我的 binlog 格式是STATEMENT BASED REPLICATION

当我INSERT INTO kot (kot_no, emp_id, created_date) VALUES (1, 1, NOW())在服务器 A 上执行时,这些是两台服务器上的结果。

在服务器 A 上

id  kot_no  emp_id  description  created_date         created_by  modified_date        modified_by  state
1   1       1       null         2015-11-01 22:51:57  0           2015-11-01 22:51:57  0            1

在服务器 B

id  kot_no  emp_id  description  created_date         created_by  modified_date        modified_by  state
1   1       1       null         2015-11-02 12:21:57  0           2015-11-02 12:21:57  0            1

我天真地假设日期将始终以 UTC 格式存储在数据库中,并且 localtime 的唯一影响是用于显示目的?任何人都可以了解这里发生的事情并告诉我解决方案而不影响服务器数据吗?

4

1 回答 1

1

MySQL timezone两个服务器的问题都不一样

检查您的时区以进行此查询:-

SELECT @@global.time_zone;

或者您可以像这样设置时区:-

SET GLOBAL time_zone = '+8:00';//your timezone 
SET GLOBAL time_zone = 'Europe/Helsinki';////your timezone 
SET @@global.time_zone='+00:00';////your timezone 

更多细节

于 2015-11-01T17:39:23.570 回答