Mysql InnoDB Код ошибки # 1025 - PullRequest
       4

Mysql InnoDB Код ошибки # 1025

1 голос
/ 01 октября 2011

Мы используем Mysql 5.1 на наших производственных серверах и пытаемся выполнить запрос на изменение, чтобы изменить тип данных столбца с tinytext на varchar (200).При выполнении запроса на изменение мы видим эту ошибку: -

# 1025 - Ошибка при переименовании «./msging/#sql-123b_ab7634» в «./msging/outboxes» (errno: -1)

Форумы MySql предполагают, что эта ошибка может быть связана с ограничениями внешнего ключа.Но наша схема не имеет никаких внешних ключей.Журналы ошибок mysql показывают нижеупомянутую ошибку. Мы прошли по ссылке, упомянутой в заявлении об ошибке, но не смогли найти ничего полезного.Любые идеи, что может пойти не так?

InnoDB: Ошибка: «./msging/outboxes.ibd» уже находится в кеше памяти табличного пространства111001 12:40:18 InnoDB: ошибка в переименовании таблицы, невозможно переименовать msging. #sql-123b_ab4828 в msging. outboxes111001 12:40:18 InnoDB: ошибка: таблица msging. outboxes не существует во внутреннем InnoDBInnoDB: словарь данных, хотя MySQL пытается отбросить его.InnoDB: скопировали ли вы файл .frm таблицы вInnoDB: каталог базы данных MySQL из другой базы данных?InnoDB: вы можете искать дополнительную помощь отInnoDB: http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html

1 Ответ

3 голосов
/ 01 октября 2011

Когда вы переименовываете таблицу, используя ALTER TABLE, вот что происходит:

  1. Таблица копируется в новый файл со случайным именем файла.
  2. В новый файл внесены изменения.
  3. Старая таблица переименовывается с использованием случайного временного имени файла.
  4. Новая таблица переименовывается на место старого файла.
  5. Старая таблица удалена.

См. Эту ссылку для более подробной информации: http://www.xaprb.com/blog/2006/08/22/mysqls-error-1025-explained/

Вы можете использовать innotop, чтобы получить более подробную информацию об ошибке: http://code.google.com/p/innotop/

...