不幸的是,不可能在RDS DB ParameterGroups中设置default_timezone,所以你的尝试是正确的方向.
$rds-describe-db-parameters default | grep "time_zone"
DBPARAMETER default_time_zone engine-default string static false
要通过SET GLOBAL设置全局值,您需要具有作为RDS用户未授予您的SUPER权限.
设置time_zone的唯一方法是基于每个连接
mysql> SET time_zone = timezone;
在我的机器上,我试过美国/东部成功,但我有一个相当老一代运行.
要确定您可用的时区,请登录到您的框中
mysql -h yourboxhost.rds.amazonaws.com -u -p
并输入
mysql> SELECT * FROM mysql.time_zone_name;
您应该可以列出您可以在实例上设置的已安装和有效的时区名称
+----------------------------------------+--------------+
| 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...
每次连接到数据库服务器时,都必须设置time_zone
例如,如果您使用php Mysqli扩展名,您可以这样做
$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');
否则只是手动(就数据库连接器的做法而言)执行SET time_zone =’< YOUR_DESIRED_TIMEZONE>‘连接到数据库后立即进行查询