Многие разработчики, при переносе сайта с серверов использующих Windows на сервера *nix, сталкиваются с одинаковой проблемой — сайт на новом сервере не запускается. Причина этому изменённый регистр у названий таблиц в системе Windows. NetCat по умолчанию использует имена таблиц в виде Table_Name, но на win-серверах этот регистр может быть изменён на table_name. В этом случае, при переезде, NetCat перестаёт видеть свои таблицы и: не загружает сайт вовсе либо выдаёт сообщение «System not installed!».
Решение проблемы.
В MySQL директива lower_case_table_names по умолчанию имеет значение 1 (ON) в Win32 версии MySQL. Вы можете изменить это поведение, просто присвоив директиве значение 0 (OFF). Только не забудьте отредактировать файл my.ini, который обычно по умолчанию расположен в каталоге Windows и добавьте следующую строчку в группу [mysqld]:
set-variable = lower_case_table_names=0
Затем, сохраните файл и перезапустите MySQL. Вы всегда можете проверить значение этой директивы, используя запрос
SHOW VARIABLES LIKE 'lower_case_table_names';
В том случае, если сайт уже создан и перенос осуществлён, нужно изменить имена таблиц на верные. Сделать это можно по примеру:
ALTER TABLE table_name RENAME Table_Name // где table_name — старое имя таблицы, которое нам нужно переименовать; // Table_Name — новое имя таблицы.
Пример:
ALTER TABLE message2000 RENAME Message2000; ALTER TABLE catalogue RENAME Catalogue;
Комментарии 1
для переустановки параметра понадобилось в my.ini дописать несколько упрощенный вариант подсказки:
lower_case_table_names=0
Файл my.ini у меня лежит не в каталоге Windows, а в
C:UsersAll UsersMySQLMySQL Server 5.6