Ошибка? #1146-таблица "xxx. xxxxx" не существует
Я использую windows XP. Я создаю таблицу в phpMyAdmin с помощью встроенной функции create table,
мое имя базы данных - ddd.
Он генерирует следующий код:
CREATE TABLE `ddd`.`mwrevision` (
`asd` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`sddd` INT NOT NULL
) ENGINE = INNODB;
И появляется следующая ошибка:
MySQL said:
#1146 - Table 'ddd.mwrevision' doesn't exist
В чем может быть проблема?
18 ответов:
У меня тоже была такая же проблема в прошлом. Все произошло после перемещения файлов базы данных в новое место и после обновления сервера mysql. Все таблицы с движком InnoDB исчезли из моей базы данных. Я пытался воссоздать их, но mysql все время говорил мне
1146: Table 'xxx' doesn't exist, пока я не воссоздал свою базу данных и не перезапустил службу mysql.Я думаю, что есть необходимость прочитать о двоичных файлах таблиц InnoDB.
У меня была та же проблема, и я не могу получить хороший совет для этого через интернет, поэтому я поделился этим для вас и для всех, кто нуждается.
В моей ситуации я копирую базу данных (все файлы: frm, myd) в папку данных в папке данных MySQL (используя Wamp дома). Все было в порядке, пока я не хочу создать таблицу и иметь ошибку
#1146 Table '...' doesn't exist!.Я использую Wamp 2.1 с MySQL версии 5.5.16.
Мое решение:
Экспорт базы данных в файл;
Проверьте, экспортируется ли файл действительно в порядке!!;
Удалите базу данных, где у меня есть проблемы;
Создайте новую базу данных с тем же именем, что и предыдущая;
Импортируйте файл в базу данных.
ДЛЯ МЕНЯ ПРОБЛЕМА РЕШЕНА. Теперь я могу снова создавать таблицы без ошибок.
В моем случае я выполнил эту команду, даже если таблица не была видна в PhpMyAdmin:
DROP TABLE mytableЗатем
CREATE TABLE....Работал на меня !
Проверьте имена файлов.
Возможно, вам потребуется создать новую базу данных в phpmyadmin, которая соответствует базе данных, которую вы пытаетесь импортировать.
У меня была та же проблема. Я попытался создать таблицу в mysql и получил ту же ошибку. Я перезапустил сервер mysql и запустил команду, и смог создать / перенести таблицу после пересчета.
Сегодня я столкнулся с той же проблемой. Я был в очень сложной ситуации, но какой id я создал таблицу с другим именем, например (modulemaster не создавал, тогда я создаю modulemaster1), и после создания таблицы я просто делаю переименование таблицы.
Я сегодня столкнулся с той же проблемой. Я пытался создать таблицу
Затем я попытался отбросить таблицу, набравusers, и мне было предложено этоERROR 1146 (42S02): Table users doesn't exist, что не имело никакого смысла, потому что я просто пытался создать таблицу!!DROP TABLE users, зная, что она не будет работать, потому что ее не существует, и я получил ошибку, сказавUnknown table users. После получения этой ошибки, я попытался создать таблицу снова, и волшебным образом, он успешно создал таблицу!Моя интуиция подсказывает, что я, вероятно, создал это стол до этого так и не был полностью убран каким-то образом. Явно говоря
Короче говоря, попробуйте отбросить любую таблицу, которую вы создаете, и создать ее снова.DROP TABLE, мне удалось каким-то образом сбросить внутреннее состояние? Но это только мое предположение.
As pprakash упоминает выше, копируя таблицу .файлы frm и файл ibdata1 были тем, что работало для меня. (Я бы просто прокомментировал этот комментарий, но это требование SO для 50 пунктов означает, что я должен предоставить решение, даже если это просто повторение существующего ... странный.)
Короче говоря:
- Закрой свой клиент проводнике выделенного текста(например, верстак).
- остановите службу MySQL (хост Windows).
- сделайте безопасную копию практически все!
- сохраните копию файла(ов) таблицы (например, mytable.frm ) в папку данных схемы (например, MySQL Server / data / {yourschema}).
- сохраните копию файла ibdata1 в папке data (т. е. MySQL Server/data).
- перезагрузите службу MySQL.
- убедитесь, что таблицы теперь доступны, доступны для запросов и т. д. В вашем клиенте проводника БД.
После этого все было хорошо. (Не забудьте сделать резервную копию, если у вас есть успех!)
Имена столбцов в таблице должны быть уникальными. В одной таблице не может быть двух столбцов с именем
asd.
Недавно у меня была такая же проблема, но на сервере Linux. База данных была разбита, и я восстановил ее из резервной копии, основанной на простом копировании
/var/lib/mysql/*(аналоговая папка данных mysql в wamp). После восстановления я должен был создать новую таблицу и получил ошибку mysql #1146. Я попытался перезапустить mysql, и он сказал, что не может начать. Я проверил журналы mysql и обнаружил, что mysql просто не имел доступа к своим файлам DB. Я проверил информацию о владельце /var / lib / mysql/* и получил'myuser:myuser'(мой пользователь-это я). Но он должен быть'mysql:adm'(таков собственный машина разработчика), поэтому я сменил владельца на "mysql: adm". И после этого mysql начал нормально работать, и я мог создавать таблицы или делать любые другие операции.Поэтому после перемещения файлов базы данных или восстановления из резервных копий проверьте доступ rigths для mysql.
Надеюсь, это поможет...
Причина, по которой я столкнулся с этим, заключалась в том, что у меня было два "models.py-файлы, которые содержали несколько иные поля. Я решил ее следующим образом:
- удаление одного из models.py файлы
- исправление ссылок на удаленный файл
- затем запуск manage.py syncdb
Я получил эту проблему после копирования mytable.файл таблицы idb из другого места. Чтобы устранить эту проблему, я сделал следующее:
ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;Скопируйте mytable.idb
ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;Перезапустить MySql
У меня была та же проблема. Это произошло после ошибки запуска windows, кажется, некоторые файлы были повреждены из-за этого. Я снова импортировал БД из сохраненного скрипта, и он работает нормально.
У меня была эта проблема из-за того, что триггер не работал..Сработало после того, как я удалил триггер.
В моем случае параметр MySQL;
lower_case_table_namesбыл настроен= 0.Это приводит к тому, что запросы, связанные с использованием верхних регистров, не будут работать.
Для меня это была проблема верхнего/нижнего регистра имени таблицы. Я должен был убедиться, что имя случая таблицы совпадает в запросе на удаление, таблица
notificationsне была такой же, какNotifications. Я исправил это, сопоставив имя таблицы case с запросом и тем, что сообщил MySQLWorkbench.Что такое wierd, так это то, что эта ошибка появилась в рабочей инструкции sql. Не знаю, что вызвало такую чувствительность к делу. Возможно, автоматическое обновление AWS RDS.
Comments