jonggu Asked: 2018-11-28 22:28:43 +0800 CST2018-11-28 22:28:43 +0800 CST 2018-11-28 22:28:43 +0800 CST Mysql连接池设置时区 772 服务应用是nodejs,它使用的是mysql连接池。 目前,我们将计划向另一个国家出售服务 设置时区的最佳方式是什么? 时区设置执行,查询执行?像“设置时区=‘UTC’;从用户中选择*;” mysql-5.6 timezone 1 个回答 Voted Best Answer jynus 2018-11-29T09:30:19+08:002018-11-29T09:30:19+08:00 要设置默认时区,您可以编辑全局变量system_time_zone(SET GLOBAL)。您很可能想在配置文件中更改它,以便它在重新启动后仍然存在。 时区可以是数字的,或者如果设置正确可以使用别名。 要设置客户端自定义时区,正确的方法是SET SESSION time_zone ='<your timezone>'; 详情请见https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html 大多数连接池会在使用后销毁或清理连接并重置为默认值,无论如何,如果它们因客户端而异,您希望在每次连接后通过运行SET SESSION上面的命令来设置它们。 话虽如此,我强烈建议在应用程序(表示)层上处理时区,并且只在服务器端的单个时区中工作(最好是在 UTC 上,或者仅在本地时区)。虽然 MySQL 支持还不错,但在处理多个时区(23:59:60 秒、夏令时更改等)时可能会造成混淆。这可能需要一次艰难的转换,但从长远来看是值得的。
要设置默认时区,您可以编辑全局变量
system_time_zone
(SET GLOBAL)。您很可能想在配置文件中更改它,以便它在重新启动后仍然存在。时区可以是数字的,或者如果设置正确可以使用别名。
要设置客户端自定义时区,正确的方法是
SET SESSION time_zone ='<your timezone>';
详情请见https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html
大多数连接池会在使用后销毁或清理连接并重置为默认值,无论如何,如果它们因客户端而异,您希望在每次连接后通过运行
SET SESSION
上面的命令来设置它们。话虽如此,我强烈建议在应用程序(表示)层上处理时区,并且只在服务器端的单个时区中工作(最好是在 UTC 上,或者仅在本地时区)。虽然 MySQL 支持还不错,但在处理多个时区(23:59:60 秒、夏令时更改等)时可能会造成混淆。这可能需要一次艰难的转换,但从长远来看是值得的。