Bug #13052 esisteva nelle versioni di MySQL prima del 5.0.15, in cui i file di dump espressi TIMESTAMP
colonne nel fuso orario del server, ma non ha incluso un comando SET TIME_ZONE
per assicurare chiunque (o qualsiasi server successiva) la lettura del file dump capito che; senza tale comando, i server di ricezione presumono che tutti i valori TIMESTAMP
siano nel fuso orario predefinito.
Pertanto, un trasferimento tra server in fusi orari spostato alle 18:30 (ad esempio dall'Australia Meridionale alla California) comporterebbe il comportamento osservato.
Le soluzioni a questo problema, in qualche modo vaga di preferenza, sono:
aggiornare la versione di mysqldump sul server originale al 5.0.15 o successiva (si tradurrà nel file di dump che esprime tutti i valori TIMESTAMP
in UTC, con una dichiarazione SET TIME_ZONE
idonea all'inizio);
prima dell'esportazione (o importare), modificare la variabile globale time_zone
sulla sorgente (o destinazione) del server, in modo che corrisponda l'impostazione sull'altro server al momento dell'importazione (o esportazione):
SET GLOBAL time_zone = 'America/Los_Angeles'; -- ('Australia/Adelaide')
UPDATE
i dati dopo il fatto, applicando la funzione di MySQL CONVERT_TZ()
:
UPDATE my_table
SET my_column = CONVERT_TZ(
my_column,
'America/Los_Angeles',
'Australia/Adelaide'
);
Se usin g o soluzione 2 o soluzione 3, fare attenzione a utilizzare il fuso orario esatto della variabile time_zone
del server pertinente, in modo tale da includere qualsiasi ora legale. Tuttavia, si noti che come documentato in MySQL Server Time Zone Support: "Fusi orari denominati possono essere utilizzati solo se le tabelle di informazioni sul fuso orario nel database mysql sono state create e popolate." L'articolo prosegue per spiegare come creare e popolare il fuso orario. tabelle informative.
sì in il tipo è 'timestamp', io sto vedendo le modifiche nel file di esportazione e sul nuovo server, sto esportando i dati tramite phpmyadmin -> scheda di esportazione, la versione di mysql è 5.0.8 – ashish
esiste un modo per correggere solo quei dati caricati sul nuovo server? – ashish