MySQL: временные метки реплицируются противоречиво в зависимости от местного часового пояса сервера?
Может кто-нибудь объяснить 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
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 в базе данных, и единственный эффект локального времени будет для целей отображения? Может кто-нибудь пролить свет на то, что здесь происходит, и предложить мне решение для этого, не затрагивая данные сервера?
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