Часовые пояса
MariaDB отслеживает несколько настроек часовых поясов.
Установка часового пояса
Переменная среды time_zone — основной способ установки часового пояса. Она может быть задана в одном из следующих форматов:
- Значение по умолчанию —
SYSTEM, которое указывает, что будет использоваться системный часовой пояс, определенный в переменной среды system_time_zone. Дополнительная информация приведена в разделе Системный часовой пояс ниже. - Можно также использовать смещение от Координированного универсального времени (UTC), например,
+5:00или-9:00. - Если таблицы часовых поясов в базе данных mysql были загружены, допустимо использовать имя часового пояса, например,
America/New_York,Africa/Johannesburg, илиEurope/Helsinki. Дополнительная информация приведена в разделе Таблицы часовых поясов mysql ниже.
В MariaDB можно установить два часовых пояса — глобальный серверный часовой пояс и часовой пояс текущей сессии. Также может быть важен системный часовой пояс.
Глобальный серверный часовой пояс
Глобальный серверный часовой пояс можно изменить во время запуска сервера, задав параметр --default-time-zone в командной строке или в группе параметров сервера группа параметров в файле опций файл опций. Например:
[mariadb] ... default_time_zone = 'America/New_York'
Глобальный серверный часовой пояс также можно динамически изменить, установив переменную среды time_zone для учетной записи пользователя, имеющей привилегию SUPER. Например:
SET GLOBAL time_zone = 'America/New_York';
Текущий глобальный серверный часовой пояс можно просмотреть, посмотрев глобальное значение переменной среды time_zone. Например:
SHOW GLOBAL VARIABLES LIKE 'time_zone'; +---------------+--------+ | Variable_name | Value | +---------------+--------+ | time_zone | SYSTEM | +---------------+--------+
Часовой пояс сессии
Каждая сессия, подключенная к серверу, также имеет свой часовой пояс. Этот часовой пояс изначально наследуется из глобального значения переменной среды time_zone, которая устанавливает значение переменной для сессии.
Часовой пояс сессии можно динамически изменить, установив переменную среды time_zone. Например:
SET time_zone = 'America/New_York';
Текущий часовой пояс сессии можно просмотреть, посмотрев значение переменной среды time_zone для сессии. Например:
SHOW SESSION VARIABLES LIKE 'time_zone'; +---------------+--------+ | Variable_name | Value | +---------------+--------+ | time_zone | SYSTEM | +---------------+--------+
Системный часовой пояс
Системный часовой пояс определяется при запуске сервера и устанавливает значение переменной среды system_time_zone. Системный часовой пояс обычно считывается из среды операционной системы. Вы можете изменить системный часовой пояс несколькими способами, например:
- Если вы запускаете сервер с помощью mysqld_safe, то можете установить системный часовой пояс с помощью параметра
--timezoneв командной строке или в группе параметров [mysqld_safe] в файле опций группа параметров в файле опций файл опций. Например:
[mysqld_safe] timezone='America/New_York'
- Если вы используете операционную систему семейства Unix, то можете установить системный часовой пояс, задав переменную среды
TZпеременная среды в вашей оболочке перед запуском сервера. Например:
$ export TZ='America/New_York' $ service mysql start
- На некоторых системах Linux можно изменить часовой пояс всей системы, сделав символическую ссылку /etc/localtime на желаемый часовой пояс. Например:
$ sudo rm /etc/localtime $ sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
- На некоторых системах Linux на основе Debian можно изменить часовой пояс всей системы, выполнив следующую команду:
sudo dpkg-reconfigure tzdata
- На системах Linux, использующих systemd, можно изменить часовой пояс всей системы, используя утилиту timedatectl. Например:
sudo timedatectl set-timezone America/New_York
Влияние часового пояса
Влияние часового пояса на функции
На некоторые функции влияют настройки часового пояса. К ним относятся:
На некоторые функции часовой пояс не влияет. К ним относятся:
Влияние часового пояса на типы данных
На некоторые типы данных влияют настройки часового пояса.
- TIMESTAMP — Подробная информация о том, как этот тип данных затрагивается настройками часовых поясов, содержится в разделе TIMESTAMP: Часовые пояса.
- DATETIME — Подробная информация о том, как этот тип данных затрагивается настройками часовых поясов, содержится в разделе DATETIME: Часовые пояса.
Таблицы часовых поясов mysql
База данных mysql содержит ряд таблиц часовых поясов:
По умолчанию эти таблицы часовых поясов в базе данных mysql создаются, но не заполняются.
Если вы используете операционную систему семейства Unix, то можете заполнить эти таблицы с помощью утилиты mariadb-tzinfo-to-sql, которая использует данные zoneinfo, доступные в Linux, Mac OS X, FreeBSD и Solaris.
Если вы используете Windows, вам потребуется импортировать предварительно заполненные таблицы часовых поясов. Они доступны на зеркалах MariaDB.
Данные о часовых поясах время от времени необходимо обновлять. В этом случае таблицы часовых поясов могут потребоваться перезагрузить.
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/time-zones/