Советы PHP-разработчика

Блог содержащий короткие заметки касающиеся программирования для web.

Ошибка Table 'modx.modx_system_settings' doesn't exist

Ошибка Table 'modx.modx_system_settings' doesn't exist

Сегодня мы поговорим об ошибке "Table 'modx.modx_system_settings' doesn't exist", которая может возникнуть после установки ModX Revolution.

Поискав в интернете решение данной проблемы я с удивлением обнаружил, что данная проблемя тянется еще с evolution. CMS инсталлируется, показывает отчет об успешной установке, но при попытке перейти в front-end или back-end части системы выводится пятисотая ошибка. Именно ее изображение начинает данный пост. Просмотр логов в директории webroot/core/cache/logs/ сигнализирует об отсутствии таблицы system_settings в БД.

Причиной данной проблемы является ошибка в sql-коде на создание таблицы. Она возникает только в случае использования строгого режима MySQL. Поэтому на время установки нам придется отключить этот режим.

Ниже представляю вам обход данной проблемы. Мы изменим значение глобальное переменной sql_mode на время установки с помощью SQL-команд. Итак, поехали.

Сначала выведем текущий режим:

mysql> SELECT @@sql_mode;
+--------------------------------------------------+
| @@sql_mode                                       |
+--------------------------------------------------+
| STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE |
+--------------------------------------------------+
1 row in set (0.00 sec)

Скопируем его, оно еще понадобится. Теперь уберем это значение:

mysql> SET GLOBAL sql_mode = '';
Query OK, 0 rows affected (0.00 sec)

Теперь можно заняться установкой ModX. Когда все готово, вернем начальный режим:

mysql> SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE';
Query OK, 0 rows affected (0.00 sec)

Теперь все готово. Можно приступать к работе с ModX.

  • 2015-08-07 21:47:03