2017-03-17 40 views
1

我只是用出口MySQL數據庫從我們的舊服務器:MySQL數據庫後更改了日期來獲得進口

PhpMyAdmin->Import->File to Import 

mysqldump -u [uname] -p[pass] db_name > db_backup.sql 

然後我使用phpMyAdmin導入了數據庫文件db_backup.sql到我們的新服務器

新數據庫表中的日期不同。爲什麼他們改變了,我該如何阻止?

這裏是舊的數據庫日期: enter image description here

,這裏是新數據庫的日期,他們爲什麼要改變? enter image description here

+0

服務器在不同的時區,6個小時的間隔,似乎。 – Barmar

+0

SET TIME_ZONE ='+00:00'; – vanloc

+0

@vanloc你的意思是在我的新服務器phpMyAdmin中執行此操作嗎? –

回答

1

解決方案1:

添加導出腳本的--skip-tz-utc選項。

解決方案2:

我想導入數據時,不能導出你應該設置時區爲UTC。

--tz-utc選項的文檔:

「的mysqldump將其連接的時區爲UTC,並增加了SET TIME_ZONE = '+ 00:00' 轉儲文件」。所以,轉儲採用UTC。 但由於您使用製表轉儲,「SET TIME_ZONE ='+ 00:00」指令 未執行,所以您必須手動設置連接 上的時區。

命令:set [email protected]_time_zone

0

我不是100%確定,但也許你有不同的時間設置在每個服務器上。我看到只有幾天和幾小時有所變化,所以它看起來像18個小時。一探究竟。

修改服務器上的全局的time_zone變量: SET GLOBAL time_zone = 'America/Los_Angeles';

更新後的事實數據,應用MySQL的CONVERT_TZ()函數:

UPDATE my_table 
SET my_column = CONVERT_TZ(
        my_column, 
        'America/Los_Angeles', 
        'Australia/Adelaide' 
        ); 
+0

有沒有辦法讓phpMyAdmin忽略它? –

+0

我編輯了答案。 –