MySQL: установка часового пояса в my.файл параметров cnf

в MySQL вы можете установить переменную сеанса под названием time_zone изменить часовой пояс. Это полезно, например, при просмотре временных меток из другой страны. Вот пример:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2010-12-30 18:59:18 |
+---------------------+
1 row in set (0.00 sec)

mysql> set time_zone='Brazil/East';
Query OK, 0 rows affected (0.00 sec)

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2010-12-30 09:59:29 |
+---------------------+
1 row in set (0.00 sec)

можно ли поместить это в файл опций, например .мой.cnf ?

когда я пытаюсь, это не работает. Все, что я получаю:

mysql: unknown variable 'time_zone=Brazil/East'

5 ответов


он должен быть!--2-->

default_time_zone=Brazil/East

детали : http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_time_zone

опция-формат файла = default_time_zone


Я не уверен, что изменилось в XAMPP, но это решение работает только если вы поместите эту строку в нужное место. Поверьте мне, я пробовал много раз и должен был сделать довольно тщательный поиск, чтобы найти это решение.

default-time-zone = "+00:00"

пример:

read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-time-zone = "+00:00" <--- Place here.
log_error = "mysql_error.log"

https://community.apachefriends.org/f/viewtopic.php?f=16&t=47656

кроме того, вы хотите быть уверены, что ваша база данных заполнена правильными именами часовых поясов, если вы собираетесь используйте "America / Los_Angeles". Я бы рекомендовал использовать смещение. Я бы рекомендовал использовать UTC в качестве базы, а затем конвертировать ваше время с этого момента для пользователей на основе их часового пояса, который сэкономит вам много головных болей позже и сохранит вашу базу данных хорошей и равномерной. Проверьте которую я прикрепил ниже он объяснил это очень ясно для меня, и я использовал эту систему. Есть много способов кодировать его, но такой подход сэкономит вам много проблемы.

http://www.vertabelo.com/blog/technical-articles/the-proper-way-to-handle-multiple-time-zones-in-mysql


немного поздно, но это может быть полезным, тем не менее:

при явной настройке часового пояса убедитесь, что вы используете правильное имя часового пояса, имея в виду, что многие из них устарели. Вы можете использовать https://en.wikipedia.org/wiki/List_of_tz_database_time_zones для подтверждения.

в моем случае, используя MySQL 5.7, устаревшее имя часового пояса не работало при добавлении его ниже [mysqld] в моем mysqld.cnf файл. Использование нового имени часового пояса, и перезапуск службы mysql работал.

Итак, для пользователя @kev здесь, используя Америка/Sao_Paulo должен работать, а не использовать Бразилия/Восток.


для MAMP, я добавил default_time_zone=-03:00 под [mysqld] на /Applications/MAMP/conf/my.cnf

Я бы получил следующую ошибку для Бразилии / Востока, вероятно, потому, что его устарел (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones):

[ERROR] Fatal error: Illegal or unknown default time zone 'Brazil/East'


на ~/.my.cnf:

[mysql]
init_command="SET time_zone='Brazil/East'"