I den här artikeln kommer vi att diskutera hur du kan ändra MySQL-tidszonen på din server så att data som lagras i dina databaser som standard kommer att använda den tidszon som du har angett.
Mycket av tiden kommer din lokala tidszon att vara annorlunda än MySQL-serverns tidszon, och detta kan göra arbetet med data i dina databaser svårare för dig. Genom att använda följande steg kan du uppdatera din MySQL-servers tidszon så att den matchar din egen för att göra arbetet med denna data enklare.
Denna ändring skulle kräva root-åtkomst till antingen en VPS (Virtual Private Server) eller dedikerad servervärdplan, eller så kan du kontakta vår supportavdelning för att få detta ändrat på din server. Du kanske också helt enkelt behöver veta hur man konverterar MySQL-tid som inte kräver root-åtkomst och kan göras på en delad server.
Ändra tidszon i MySQL
- Logga in på din server via SSH som root-användare.
- Du kan se MySQL:s aktuella tidszonsinställningar med följande kommando från konsolen:
mysql -e "SELECT @@global.time_zone;"
Som standard bör du få tillbaka något som liknar:+--------------------+ | @@global.time_zone | +--------------------+ | SYSTEM | +--------------------+
Detta beror på att din MySQL-tidszon som standard är inställd på serverns standard SYSTEM tid. Om du är intresserad av att ändra hela serverns tidszon kan detta åstadkommas genom att ställa in tidszonen i WHM. - Du kan se serverns SYSTEM tidsstämpel med följande kommando:
date
Vilket ger tillbaka:Mon Nov 26 12:50:07 EST 2012
- Du kan se den aktuella tidsstämpeln som rapporterats av MySQL-servern med följande kommando:
mysql -e "SELECT NOW();"
Detta bör ge tillbaka den aktuella tidsstämpeln:+---------------------+ | NOW() | +---------------------+ | 2012-11-26 12:50:15 | +---------------------+
- Nu kan du redigera din MySQL-konfigurationsfil med din favorittextredigerare:
vi /etc/my.cnf
Lägg sedan till följande rad för att ändra från EST (GMT -5:00 ) till CST (GMT -6:00 ):default-time-zone = '-06:00'
Spara nu /etc/my.cnf fil med din nya standard.
- För att göra ändringen aktiv vill du starta om MySQL-tjänsten med följande kommando:
service mysql restart
- Om du nu försöker se den globala tidszonsinställningen igen med kommandot:
mysql -e "SELECT @@global.time_zone;"
Du bör nu få tillbaka din nya standard:+--------------------+ | @@global.time_zone | +--------------------+ | -06:00 | +--------------------+
- Du bör också se nu att NOW() Funktionen har också uppdaterats:
mysql -e "SELECT NOW();"
Detta bör ge tillbaka den aktuella tidsstämpeln:+---------------------+ | NOW() | +---------------------+ | 2012-11-26 11:50:15 | +---------------------+
Du bör nu veta hur du uppdaterar MySQL-serverns tidszonsinställning för att se till att data som lagras i databaser är lätta för dig att arbeta med. Du kan också använda namngivna tidszoner istället för GMT -6:00 format, men detta kräver först att du laddar tidszonstabellerna i mysql databas. Mer information om detta finns på MySQL-webbplatsen angående mysql_tzinfo_to_sql och laddning av tidszonstabellerna.