sql >> Base de Datos >  >> RDS >> Mysql

Ajuste de la configuración de zona horaria predeterminada en RDS

Lamentablemente, no es posible establecer la zona horaria predeterminada en los grupos de parámetros de la base de datos de RDS, por lo que su intento ya fue en la dirección correcta.

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

Para establecer el valor global a través de SET GLOBAL, debe tener el privilegio SUPER que no se le otorga como usuario de RDS.

La única forma de configurar la zona horaria es por conexión

mysql> SET time_zone = timezone;

En mis máquinas probé US/Eastern con éxito, pero tengo una generación bastante antigua en ejecución.

Para determinar las zonas horarias que tienes disponibles inicia sesión en tu casilla

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

y escribe

mysql> SELECT * FROM mysql.time_zone_name;

Debería obtener una lista de nombres de zonas horarias válidas e instaladas que puede configurar en su instancia

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

Debe configurar la zona horaria cada vez que se conecte a su servidor de base de datos

Por ejemplo, si usa la extensión php Mysqli, puede hacer esto

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

De lo contrario, solo manualmente (en términos de permitir que lo haga su conector de base de datos) ejecute SET time_zone = '<YOUR_DESIRED_TIMEZONE>' Consulta justo después de conectarte a tu base de datos