Для того чтобы удостовериться в рассмотренной ниже причине ошибки необходимо посмотреть названия таблиц в БД.
В результатах выполения sql-запроса «SHOW TABLES» в нужной базе видим таблицы созданные в нижнем регистре ? естественно NetCat использует по умолчанию таблицы в том виде в котором они находятся в установочном дампе (то есть «Table_Name»). Перевод регистра символов в названиях таблиц происходить при импорте дампа в MySQL на WIN32 системах (так как для windows-машин регистр роли не играет в отличии от unix, которые, зачастую, стоят на серверах). Таким образом существуют следующие способы решения проблемы:
? переименовать таблицы в первозданный вид, если база сильно отличается от установочной.
# ALTER TABLE table_name_old RENAME Table_Name_New
# table_name_old — старое имя таблицы, которое нам нужно переименовать;
# Table_Name_New — новое имя таблицы.
? перед установкой NetCat указать в настройках mysql lower_case_table_names = 1:
В 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';
? при переносе БД воспользоваться утилитой mysql_fix_extensions. Этот метод не использовал. Прокомментируйте если есть удачный опыт .
Помогло ручное переименование при переносе с windows на linux сервер. За заметку спасибо.
Метод с set-variable = lower_case_table_names=0 тоже работает, а my.ini может лежать в папке «MySQL» сервера.
Спасибо, то что нужно
Спасибо за статью! Помогло!
Ничего не понял. Что нужно сделать?