Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да зададете часова зона на базата данни за екземпляр на AWS RDS

Преди останалата част от моя отговор, бих искал да препоръчам точно сега, че ако имате някаква възможност да промените приложението си, за да използва UTC, това ще ви спести много мъка сега и в бъдеще.

Въпреки това, като се има предвид контекста на вашия въпрос, предполагам, че това не е опция и че адаптирате система, предназначена да използва MySQL в традиционна сървърна среда, където можете просто да промените часовата зона и че има кодова логика, която очаква тази часова зона и не може лесно да се адаптира за използване на UTC.

Но ако наистина имате нужда да го съхранявате като PST, прочетете нататък.

Прав сте, че mySql ще използва часовата зона на сървъра за съхранение на времеви марки по подразбиране, но предположението ви, че екземплярите на RDS имат часовите зони, зададени въз основа на региона на AWS, в който са стартирани, е неправилно - всички RDS екземпляри се стартират с часовата им зона, зададена като UTC, и тази конфигурация може не се променя:

Така че единствената ви възможност е да зададете часовата зона за всяка връзка, която вашето приложение прави към екземпляра на базата данни на PST. Можете да използвате SET SESSION time_zone = 'PST' заявка за изпълнение във всяка връзка, която приложението прави, като следвате двете стъпки намерени тук :

  1. Създайте следната съхранена процедура (UTC-8 е PST):

  2. Свържете се с вашия екземпляр и изпълнете следната команда:

  3. Може да се наложи да предоставите EXECUTE разрешения за потребителите, които ще се свързват с базата данни, в противен случай може да получите грешка при връзката:

Сега всяка заявка, изпълнена спрямо вашия RDS екземпляр от който и да е клиент, трябва да използва PST, без да променя логиката на приложението и без да е необходимо да актуализирате каквито и да е по-рано съхранени времеви печати в базата данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL заявка за преброяване в група с определено условие

  2. Синтактична грешка на SQL близо до desc

  3. Как да обърнете реда на символите в низ в MySQL

  4. mysqli_connect():(HY000/2002):Времето за изчакване на връзката при хостинг изтече

  5. Защо получавам „Бинарното регистриране не е възможно“. на моя MySQL сървър?