首页  >  文章  >  数据库  >  如何管理 MySQL 中的时区?

如何管理 MySQL 中的时区?

DDD
DDD原创
2024-11-06 20:15:03194浏览

How do I manage time zones in MySQL?

MySQL 时区

MySQL 支持完整的时区列表,使开发人员能够精确管理和操作日期和时间数据。 MySQL 设置中时区的可用性取决于底层主机操作系统,但有一些方法可以加载时区信息并访问完整列表。

要建立特定区域的当地时间,例如卡尔加里,管理员可以使用以下命令从系统加载时区数据:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

加载后,可以通过执行以下命令查看可用时区列表:

USE mysql;
SELECT * FROM `time_zone_name`;

这将显示系统中所有可识别时区的完整列表。

在 MySQL 中处理时区时,需要注意的是,时区信息大约消耗 5 MB 的数据库空间。要卸载时区数据,请执行以下命令并重新启动 MySQL:

TRUNCATE `time_zone` ;
TRUNCATE `time_zone_leap_second` ;
TRUNCATE `time_zone_name` ;
TRUNCATE `time_zone_transition` ;
TRUNCATE `time_zone_transition_type` ;

应避免删除这些表,因为这可能会导致问题。

对于自动时区更新,请确保允许 root 登录,无需密码提示。在 MySQL 5.6.6 及更高版本中,执行:

mysql_config_editor set --login-path=client --host=localhost --user=root --password

对于 5.6.6 之前的版本,创建 ~/.my.cnf 文件并包含以下内容:

[client]
user=root
password=yourMysqlRootPW

修改文件权限以确保隐私。可以添加 crontab 脚本来进行每日时区更新:

#!/bin/bash

if [ `find /usr/share/zoneinfo -mtime -1 | grep -v '\.tab' | wc -l` -gt 0 ]; then
    echo "Updating MySQL timezone info"

    mysql_tzinfo_to_sql /usr/share/zoneinfo 2>/dev/null | mysql -u root mysql
    echo "Done!\n"
fi

通过实施这些技术,开发人员可以有效地管理 MySQL 中的时区,并确保其应用程序中准确的日期和时间处理。

以上是如何管理 MySQL 中的时区?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn