Ошибка? #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


В чем может быть проблема?

3439   18  

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.

Мое решение:

  1. Экспорт базы данных в файл;

  2. Проверьте, экспортируется ли файл действительно в порядке!!;

  3. Удалите базу данных, где у меня есть проблемы;

  4. Создайте новую базу данных с тем же именем, что и предыдущая;

  5. Импортируйте файл в базу данных.

ДЛЯ МЕНЯ ПРОБЛЕМА РЕШЕНА. Теперь я могу снова создавать таблицы без ошибок.

В моем случае я выполнил эту команду, даже если таблица не была видна в PhpMyAdmin:

DROP TABLE mytable

Затем

CREATE TABLE....

Работал на меня !

Перезапуск MySQL работает нормально для меня.

Проверьте имена файлов.
Возможно, вам потребуется создать новую базу данных в 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 пунктов означает, что я должен предоставить решение, даже если это просто повторение существующего ... странный.)

Короче говоря:

  1. Закрой свой клиент проводнике выделенного текста(например, верстак).
  2. остановите службу MySQL (хост Windows).
  3. сделайте безопасную копию практически все!
  4. сохраните копию файла(ов) таблицы (например, mytable.frm ) в папку данных схемы (например, MySQL Server / data / {yourschema}).
  5. сохраните копию файла ibdata1 в папке data (т. е. MySQL Server/data).
  6. перезагрузите службу MySQL.
  7. убедитесь, что таблицы теперь доступны, доступны для запросов и т. д. В вашем клиенте проводника БД.

После этого все было хорошо. (Не забудьте сделать резервную копию, если у вас есть успех!)

Имена столбцов в таблице должны быть уникальными. В одной таблице не может быть двух столбцов с именем asd.

Выполнить из CMD & % path%=установить в mysql / bin

mysql_upgrade -u user -ppassword

Недавно у меня была такая же проблема, но на сервере 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-файлы, которые содержали несколько иные поля. Я решил ее следующим образом:

  1. удаление одного из models.py файлы
  2. исправление ссылок на удаленный файл
  3. затем запуск 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

    Ничего не найдено.