Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dostosowanie do domyślnego ustawienia strefy czasowej w RDS

Niestety nie jest możliwe ustawienie default_timezone w RDS DB ParameterGroups, więc Twoja próba była już we właściwym kierunku.

$ rds-describe-db-parameters default | grep "time_zone"
DBPARAMETER  default_time_zone                                                                   engine-default  string   static   false

Aby ustawić wartość globalną przez SET GLOBAL, musisz mieć uprawnienie SUPER, które nie jest przyznane użytkownikowi RDS.

Jedynym sposobem ustawienia strefy czasowej jest ustawienie na podstawie połączenia

mysql> SET time_zone = timezone;

Na moich maszynach z powodzeniem wypróbowałem US/Eastern, ale mam dość starą generację.

Aby określić dostępne strefy czasowe, zaloguj się do swojego pudełka

mysql -h yourboxhost.rds.amazonaws.com -u <youruser> -p

i wpisz

mysql> SELECT * FROM mysql.time_zone_name;

Powinieneś otrzymać listę zainstalowanych i prawidłowych nazw stref czasowych, które możesz ustawić w swojej instancji

+----------------------------------------+--------------+
| Name                                   | Time_zone_id |
+----------------------------------------+--------------+
| Africa/Abidjan                         |            1 |
| Africa/Accra                           |            2 |
| Africa/Addis_Ababa                     |            3 |
| Africa/Algiers                         |            4 |
| Africa/Asmara                          |            5 |
| Africa/Asmera                          |            6 |
| Africa/Bamako                          |            7 |
| Africa/Bangui                          |            8 |
| Africa/Banjul                          |            9 |
| Africa/Bissau                          |           10 |
| Africa/Blantyre                        |           11 |
| Africa/Brazzaville                     |           12 |
| Africa/Bujumbura                       |           13 |
| Africa/Cairo                           |           14 |
etc...

Musisz ustawić strefę czasową za każdym razem, gdy łączysz się z serwerem bazy danych

Na przykład, jeśli używasz rozszerzenia php Mysqli, możesz to zrobić

$mysqli = mysqli_init();
mysqli_options($mysqli,MYSQLI_INIT_COMMAND,"SET time_zone = 'Africa/Brazzaville'" );
mysqli_real_connect($mysqli,$host, $user, $pass,$dbName) or die ('Unable to connect');

W przeciwnym razie po prostu ręcznie (w sensie pozwolenia na to, aby zrobił to twój łącznik bazy danych) wykonaj SET time_zone = '<YOUR_DESIRED_TIMEZONE>' Zapytanie zaraz po połączeniu się z bazą danych



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Różnice między INDEX, PRIMARY, UNIQUE, FULLTEXT w MySQL?

  2. 193:%1 nie jest poprawnym błędem aplikacji Win32 z nową aplikacją Rails

  3. Widoki MySQL – kiedy używać, a kiedy nie

  4. 5 najlepszych kursów online do nauki MySQL

  5. Jak zmienić wartość automatycznego przyrostu bazy danych MySQL / MariaDB?