Add new comment

04 Aug

Время на сервере базы данных отличается от времени на веб-сервере больше, чем на 10 минут

Published by Nicholas

Время

При проверке соединения с сайтом 1С-Битрикс из 1С:Комплексная автоматизация, редакция 1.1 возникает ошибка:

Авторизация не выполнена. 
Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль. 
Ответ сервера: failure 
Время на сервере базы данных отличается от времени на веб-сервере больше, чем на 10 минут. Вероятно неправильно настроены временные зоны. Выполните настройку и повторите обмен. 
Не удалось установить соединение.

Имя пользователя и пароль в данном случае верные. Дело во времени на сервере базы данных. Для настройки времени необходимо сделать следующее.

1. Определим свой часовой пояс. Сделать это можно, например, здесь: http://php.net/manual/en/timezones.php

В моем случае это "Asia/Novosibirsk".

2. Устанавливаем часовой пояс для PHP. Для этого нужно отредактировать файл /bitrix/php_interface/dbconn.php и внести в него следующее:

date_default_timezone_set("Asia/Novosibirsk");

3. Устанавливаем часовой пояс для MySQL в файле /bitrix/php_interface/after_connect.php: 

$DB->Query("SET LOCAL time_zone='".date('P')."'");

В файле /bitrix/php_interface/after_connect_d7.php: 

$connection->queryExecute('SET LOCAL time_zone="'.date('P').'"');

Часовой пояс будет браться из настроек PHP.

Иногда система может не содержать информацию об отмене перехода на зимнее время в РФ. В это случае можно использовать прямое указание сдвига относительно GMT, например, для Москвы будет:

date_default_timezone_set("Etc/GMT-4");
$DB->Query("SET LOCAL time_zone='Etc/GMT-4'");


Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
CAPTCHA
Are you a human visitor or automated spam submissions?
Target Image