应用部署在海外服务器,但用户在国内,查询时间相差8小时;
跨时区的数据同步出现时间偏移;
TIMESTAMP 和 DATETIME 字段类型行为不一致导致逻辑错误;
-- MySQL 查看全局和会话时区
SHOW GLOBAL VARIABLES LIKE '%time_zone%';
SHOW VARIABLES LIKE '%time_zone%';
-- 输出示例:
-- system_time_zone | CST // CST 表示跟随系统时区
-- time_zone | SYSTEM
// 全局修改
SET GLOBAL time_zone = '+08:00'; -- 东八区
SET GLOBAL time_zone = 'Asia/Shanghai'; -- 使用时区名称(需时区表已加载)
// 修改当前会话
SET time_zone = '+00:00'; -- 切换为UTC时间
[mysqld]
default-time-zone = '+08:00'
systemctl restart mysql # Linux
service mysql restart # Ubuntu/Debian
# java 示例:连接时指定时区
jdbc:mysql://localhost:3306/test_db?serverTimezone=Asia/Shanghai
TIMESTAMP
或者时间戳等)。my.cnf
中明确设置 default-time-zone
。需要时区转换 → TIMESTAMP 或 时间戳
存储绝对时间(如生日) → DATETIME 或 字符串
JDBC URL添加 serverTimezone=Asia/Shanghai 参数
MySQL 8.0+
连接时告警:The server time zone value 'CST' is unrecognized or represents more than one time zone.
MySQL 5.x
使用本地 JVM 默认时区。👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.
🚀 我对技术的热情是我不断学习和分享的动力。我的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。
🧠 作为一个 Java 后端技术爱好者,我不仅热衷于探索语言的新特性和技术的深度,还热衷于分享我的见解和最佳实践。我相信知识的分享和社区合作可以帮助我们共同成长。
💡 在我的博客上,你将找到关于Java核心概念、JVM 底层技术、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中间件、性能优化等内容的深入文章。我也将分享一些编程技巧和解决问题的方法,以帮助你更好地掌握Java编程。
🌐 我鼓励互动和建立社区,因此请留下你的问题、建议或主题请求,让我知道你感兴趣的内容。此外,我将分享最新的互联网和技术资讯,以确保你与技术世界的最新发展保持联系。我期待与你一起在技术之路上前进,一起探讨技术世界的无限可能性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。