Mysql
 sql >> Database >  >> RDS >> Mysql

Regolazione dell'impostazione predefinita del fuso orario su RDS

Sfortunatamente non è possibile impostare default_timezone negli RDS DB ParameterGroups, quindi il tuo tentativo era già nella giusta direzione.

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

Per impostare il valore globale tramite SET GLOBAL devi avere il privilegio SUPER che non ti viene concesso come utente RDS.

L'unico modo per impostare il fuso orario è in base alla connessione

mysql> SET time_zone = timezone;

Sulle mie macchine ho provato con successo US/Eastern ma ho una generazione piuttosto vecchia in esecuzione.

Per determinare i fusi orari che hai a disposizione accedi alla tua casella

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

e digita

mysql> SELECT * FROM mysql.time_zone_name;

Dovresti ottenere un elenco di nomi di fuso orario installati e validi che puoi impostare sulla tua istanza

+----------------------------------------+--------------+
| 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...

Devi impostare il time_zone ogni volta che ti connetti al tuo server di database

Ad esempio, se usi l'estensione php Mysqli puoi farlo

$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');

Altrimenti solo manualmente (in termini di lasciare che il tuo connettore del database lo faccia) esegui SET time_zone = '<YOUR_DESIRED_TIMEZONE>' Interroga subito dopo esserti connesso al tuo database