查看mysql时区设置,确认是否为SYSTEM或+00:00;2. 确保系统时区正确,如设置为Asia/Shanghai;3. 在my.cnf中配置default-time-zone=’+8:00’或’Asia/Shanghai’;4. 使用mysql_tzinfo_to_sql导入时区表以支持完整时区名;5. 重启MySQL并验证NOW()时间是否正确。关键在于系统与MySQL时区一致且时区表已加载。

MySQL 安装后如果发现时间不正确,通常是由于时区配置未设置或与系统不一致导致的。下面介绍几种常见的配置方式来正确设置 MySQL 的时区。
1. 查看当前时区设置
登录 MySQL 后执行以下命令查看当前时区:
select @@global.time_zone, @@session.time_zone;
如果返回结果是 SYSTEM,表示使用的是系统默认时区;如果是 +00:00,说明当前是 UTC 时间,可能与中国标准时间(CST/UTC+8)不符。
2. 确保系统时区正确
MySQL 依赖操作系统的时区信息,先确认操作系统时区是否正确:
# linux 查看系统时区
timedatectl | grep “Time zone”
# 若需修改(如设置为上海时区)
sudo timedatectl set-timezone Asia/Shanghai
3. 配置 MySQL 使用正确的时区
编辑 MySQL 配置文件(通常为 /etc/my.cnf 或 /etc/mysql/my.cnf),在 [mysqld] 段落中添加:
[mysqld]
default-time-zone = ‘+8:00’
也可以使用时区名称:
default-time-zone = ‘Asia/Shanghai’
保存后重启 MySQL 服务:
sudo systemctl restart mysql
4. 加载时区表(推荐)
若想使用完整的时区名称(如 Asia/Shanghai),需要加载 MySQL 的时区信息表:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
这条命令会将系统时区数据导入 MySQL 的 mysql 数据库中。导入成功后,就可以在配置中使用时区名称了。
验证是否生效:
SELECT NOW();
查看输出时间是否与本地时间一致。
基本上就这些。关键是确保系统时区正确、MySQL 配置设置了合适的时区,并加载了时区表支持。不复杂但容易忽略细节。


