我只是用出口MySQL數據庫從我們的舊服務器:MySQL數據庫後更改了日期來獲得進口
PhpMyAdmin->Import->File to Import
:
mysqldump -u [uname] -p[pass] db_name > db_backup.sql
然後我使用phpMyAdmin導入了數據庫文件db_backup.sql
到我們的新服務器
新數據庫表中的日期不同。爲什麼他們改變了,我該如何阻止?
我只是用出口MySQL數據庫從我們的舊服務器:MySQL數據庫後更改了日期來獲得進口
PhpMyAdmin->Import->File to Import
:
mysqldump -u [uname] -p[pass] db_name > db_backup.sql
然後我使用phpMyAdmin導入了數據庫文件db_backup.sql
到我們的新服務器
新數據庫表中的日期不同。爲什麼他們改變了,我該如何阻止?
解決方案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
我不是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'
);
有沒有辦法讓phpMyAdmin忽略它? –
我編輯了答案。 –
服務器在不同的時區,6個小時的間隔,似乎。 – Barmar
SET TIME_ZONE ='+00:00'; – vanloc
@vanloc你的意思是在我的新服務器phpMyAdmin中執行此操作嗎? –