76  /  79

Ошибки запросов к БД

Просмотров: 8747 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 19.04.2018
Александр Суворов
Сложность урока:
4 уровень - сложно, требуется сосредоточится, внимание деталям и точному следованию инструкции.
1
2
3
4
5

При возникновении ошибок запросов к базе данных на экран выдается сообщение вида Стандартный вид данного сообщения определяется в файле /bitrix/php_interface/dbquery_error.php. :

Иногда возникает ситуация, когда сайт перестает отвечать, и посетителям отображается пустая страница. В этом случае рекомендуется открыть файл bitrix/php_interface/dbconn.php, содержащий параметры соединения с базой данных, и установить значение параметра $DBDebug = true;

<?
define("DBPersistent", true);
$DBType = "mysql";
$DBHost = "localhost:31006";
$DBLogin = "root";
$DBPassword = "";
$DBName = "bsm_demo";
$DBDebug = true;
$DBDebugToFile = false;

set_time_limit(60);

define("BX_FILE_PERMISSIONS", 0644);
define("BX_DIR_PERMISSIONS", 0755);
@ini_set("memory_limit", "64M");
?>

В результате будет получен код ошибки, содержащий, как правило, названия поврежденных таблиц базы данных.

Запуск утилиты perror.exe Файл perror.exe хранится в каталоге mysql/bin. с кодом ошибки позволяет получить описание ошибки по ее коду:

Примечание: Для ошибки с кодом 28 выводится следующее описание:

Данное сообщение означает, что на диске, где установлена база данных, недостаточно места для ее работы.

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

Обратите внимание на следующее:
  • Скрипт проверки и восстановления базы данных может быть использован только для MySQL с типом таблиц MyISAM.
  • Скрипт проверки запускается со страницы Настройки > Инструменты > Диагностика > Проверка БД:

    В случае, если повреждены таблицы статистики и нет возможности перейти в административный раздел, сбор статистики может быть временно отключен с помощью параметра ?no_keep_statistic_LICENSE-KEY=Y. В параметре указывается лицензионный ключ сайта.

Проблема:

На экран выводится ошибка:

MySQL Query Error: ….. [Out of memory restart server and try again (needed 65528 bytes)]

Решение:

Необходимо увеличить объем памяти в настройках MySQL.

Рекомендуется использовать следующие параметры MySQL, задавая их в конфигурационном файле MySQL my.cnf:

key_buffer = 128K
max_allowed_packet = 16M
table_cache = 4
sort_buffer_size = 128K
read_buffer_size = 128K
read_rnd_buffer_size = 128K
net_buffer_length = 128K
thread_stack = 128K

После изменения параметров необходимо будет перезагрузить MySQL.


Проблема:

При разворачивании бекапа на виртуальную машину на экран выводится ошибка:

MySQL Query Error: SET LOCAL time_zone='Europe/Moscow'[Unknown or incorrect time zone: 'Europe/Moscow']

Решение:

Необходимо загрузить информацию по временным зонам в MySQL:

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

После изменения параметров необходимо будет перезагрузить MySQL.


33
Курсы разработаны в компании «1С-Битрикс»