Ошибки · Решение
MySQL error 1005: Can't create table
Это общий код неудачи CREATE TABLE, поэтому ключ к диагностике — вложенный errno/storage-engine detail.
Короткий ответ
MySQL 1005 (`ER_CANT_CREATE_TABLE`) означает, что сервер не смог создать таблицу; дополнительный errno в сообщении указывает на конкретную причину.
Что означает ошибка
Это общий код неудачи CREATE TABLE, поэтому ключ к диагностике — вложенный errno/storage-engine detail.
Возможные причины
- Неправильно сформирован foreign key, что для InnoDB часто сопровождается errno 150.
- Файловая/engine-проблема мешает создать внутренние структуры таблицы.
- DDL конфликтует с ограничениями или существующими объектами.
Что проверить
- Сохраните полный текст ошибки, включая errno и имя таблицы.
- Для InnoDB сразу проверьте `SHOW ENGINE INNODB STATUS` после сбоя.
- Сверьте типы и индексы колонок parent/child у foreign key.
Безопасные шаги
- Исправьте конкретную причину из engine detail, а не повторяйте CREATE TABLE вслепую.
- Для FK добейтесь совпадения типов/индексов и существования parent key.
- Если причина файловая, проверьте права/место/состояние storage, не удаляя data files вручную.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если errno не объясняется схемой и повторяется на чистом DDL, DBA должен проверить error log и состояние storage engine.
Похожие ошибки
- /errors/mysql-error-1040-con-count-error/
- /errors/mysql-error-1048-bad-null-error/
- /errors/mysql-error-1052-non-uniq-error/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.