I denne artikel vil vi diskutere, hvordan du kan ændre MySQL-tidszonen på din server, så data gemt i dine databaser som standard vil bruge den tidszone, du har angivet.
Meget af tiden vil din lokale tidszone være anderledes end MySQL-serverens tidszone, og dette kan gøre arbejdet med data inde i dine databaser sværere for dig. Ved at bruge følgende trin kan du opdatere din MySQL-servers tidszone, så den matcher din egen for at gøre arbejdet med disse data nemmere.
Denne ændring ville kræve root-adgang til enten en VPS (Virtual Private Server) eller dedikeret server-hostingplan, eller du kan kontakte vores supportafdeling for at få dette ændret på din server. Du skal muligvis også blot vide, hvordan du konverterer MySQL-tid, som ikke kræver root-adgang og kan udføres på en delt server.
Ændring af tidszonen i MySQL
- Log ind på din server via SSH som root-bruger.
- Du kan se MySQLs aktuelle tidszoneindstillinger ved at bruge følgende kommando fra konsollen:
mysql -e "SELECT @@global.time_zone;"
Som standard bør du få noget, der ligner:+--------------------+ | @@global.time_zone | +--------------------+ | SYSTEM | +--------------------+
Dette skyldes, at din MySQL-tidszone som standard er indstillet til serverens standard SYSTEM tid. Hvis du er interesseret i at ændre hele serverens tidszone, kan dette opnås ved at indstille tidszonen i WHM. - Du kan se serverens SYSTEM tidsstempel ved hjælp af følgende kommando:
date
Som vil give tilbage:Mon Nov 26 12:50:07 EST 2012
- Du kan se det aktuelle tidsstempel rapporteret af MySQL-serveren ved hjælp af følgende kommando:
mysql -e "SELECT NOW();"
Dette skulle give det aktuelle tidsstempel tilbage:+---------------------+ | NOW() | +---------------------+ | 2012-11-26 12:50:15 | +---------------------+
- Nu kan du redigere din MySQL-konfigurationsfil med din foretrukne teksteditor:
vi /etc/my.cnf
Tilføj derefter følgende linje for at ændre fra EST (GMT -5:00 ) til CST (GMT -6:00 ):default-time-zone = '-06:00'
Gem nu /etc/my.cnf fil med din nye standard.
- For at gøre ændringen aktiv skal du genstarte MySQL-tjenesten med følgende kommando:
service mysql restart
- Nu, hvis du prøver at se den globale tidszoneindstilling igen med kommandoen:
mysql -e "SELECT @@global.time_zone;"
Du bør nu få din nye standard tilbage:+--------------------+ | @@global.time_zone | +--------------------+ | -06:00 | +--------------------+
- Du bør også se nu, at NU() Funktionen er også opdateret:
mysql -e "SELECT NOW();"
Dette skulle give det aktuelle tidsstempel tilbage:+---------------------+ | NOW() | +---------------------+ | 2012-11-26 11:50:15 | +---------------------+
Du bør nu vide, hvordan du opdaterer MySQL-serverens tidszoneindstilling for at sikre, at de data, der er gemt i databaser, er nemme at arbejde med. Du kan også bruge navngivne tidszoner i stedet for GMT -6:00 format, men dette kræver først, at du indlæser tidszonetabellerne i mysql database. Mere information om dette kan findes på MySQL-siden vedrørende mysql_tzinfo_to_sql og indlæsning af tidszonetabellerne.