wp_postmeta - ошибка 1050 mysql




Ошибка Mysql 1050 «Таблица уже существует», когда на самом деле она не (16)

Я добавляю эту таблицу:

CREATE TABLE contenttype (
        contenttypeid INT UNSIGNED NOT NULL AUTO_INCREMENT,
        class VARBINARY(50) NOT NULL,
        packageid INT UNSIGNED NOT NULL,
        canplace ENUM('0','1') NOT NULL DEFAULT '0',
        cansearch ENUM('0','1') NOT NULL DEFAULT '0',
        cantag ENUM('0','1') DEFAULT '0',
        canattach ENUM('0','1') DEFAULT '0',
        isaggregator ENUM('0', '1') NOT NULL DEFAULT '0',
        PRIMARY KEY (contenttypeid),
        UNIQUE KEY packageclass (packageid, class)
);

И я получаю 1050 «таблица уже существует»

Но таблица НЕ существует. Есть идеи?

EDIT: подробности, потому что все, кажется, не верят мне :)

DESCRIBE contenttype

выходы:

1146 - Таблица «gunzfact_vbforumdb.contenttype» не существует

а также

CREATE TABLE gunzfact_vbforumdb.contenttype(
contenttypeid INT UNSIGNED NOT NULL AUTO_INCREMENT ,
class VARBINARY( 50 ) NOT NULL ,
packageid INT UNSIGNED NOT NULL ,
canplace ENUM( '0', '1' ) NOT NULL DEFAULT '0',
cansearch ENUM( '0', '1' ) NOT NULL DEFAULT '0',
cantag ENUM( '0', '1' ) DEFAULT '0',
canattach ENUM( '0', '1' ) DEFAULT '0',
isaggregator ENUM( '0', '1' ) NOT NULL DEFAULT '0',
PRIMARY KEY ( contenttypeid ) ,

Урожайность:

1050 - таблица «contenttype» уже существует


gosh, у меня была такая же проблема с скриптом установки osCommerce пока я не понял, что в системе mysql есть много баз данных, и запрос на create table копирует себя в каждый из них и, таким образом, отбрасывает только рабочую таблицу в активном db, не помог, мне пришлось отказаться от таблицы из всех dbs


Аналогичная проблема возникла при создании представления. Представление было ранее, но из-за некоторых изменений, которые он удалил. Но когда я попытался добавить его снова, он показывал мне сообщение об ошибке «просмотр уже существует».

Решение :

Вы можете сделать одно дело вручную.

  1. Перейдите в папку MySQL, в которой вы ее установили.
  2. Перейдите в папку данных внутри него.
  3. Выберите свою базу данных и войдите в нее.
  4. База данных создает файлы формата .frm.
  5. удалите файл конкретной таблицы.
  6. Теперь создайте таблицу снова.

Он создаст таблицу успешно.


В моем случае я обнаружил, что это проблема с InnoDB; Я никогда не обнаружил, какова была настоящая проблема, но создание в качестве MyISAM позволило ей построить


Ваш диск также может быть заполнен. (только что было)


Для меня проблема возникла при использовании копии файловой системы базы данных mysql вместо mysqldump. У меня есть очень большие таблицы, в основном MyISAM и несколько таблиц кэша InnoDB, и это не является практичным для mysqldump данных. Поскольку мы все еще запускаем MyISAM, XtraBackup не является вариантом.

Те же симптомы, что и выше, произошли со мной. Таблицы там нет, в каталоге нет файлов, относящихся к таблице, но это невозможно создать, потому что MySQL думает о ней. Drop table говорит, что его нет, создать таблицу говорит, что это так.

Проблема возникла на двух машинах, оба были исправлены путем копирования резервных копий. Тем не менее, я заметил, что в моей резервной копии был файл .MYD и .MYI, хотя у меня создалось впечатление, что эти файлы не используются для InnoDB. У файлов .MYD и .MYI был владелец root, а .frm принадлежал mysql.

Если вы копируете из резервной копии, проверьте права доступа к файлам. Таблицы Flush могут работать, но я решил закрыть и перезапустить базу данных.

Удачи.


Мой оператор CREATE был частью промежуточного сценария env.

Я попробовал все, что было упомянуто выше. Я НЕ получил решение. Однако мой путь к искуплению:

  1. Я натыкаюсь на то, что (один из многих в) оператор CREATE действительно прошел, когда я исправил чувствительность к регистру базы данных. Это что-то нажало. Я повторил то же самое для других таблиц.

  2. Однако на сцену появилась новая ошибка. Прямые цитаты для «комментариев» бросали синтаксическую ошибку. Я был потрясен. заменили их, но появилась новая ошибка. Наконец я знал решение.

РЕШЕНИЕ: Дамп, который я использовал, возможно, был из другой версии MySql. Я получил разрешение на подключение к промежуточной MYsql с помощью локальной (установленной на моей машине) рабочей среды mysql. Я не rdp на промежуточном сервере для входа в очередь для работы с mysql workbench. Создал дамп оттуда. Отправил свалку, и это сработало, как сладкое.


Пытался импортировать резервный sql-файл, но получал ошибку; 1050 «Таблица уже существует»

Моя настройка:

  • Windows 7
  • Mysql 5.5.16

Решение:

  1. Изменен движок сервера от InnoDB до MyISAM
  2. Использование phpMyAdmin Удаленная база данных, которую я пытался импортировать в
  3. Перезапуск службы mysql
  4. Пробовал повторный импорт, и это сработало

Сначала проверьте, используете ли вы правильную базу данных USE yourDB и попробуйте Select * from contenttype чтобы узнать, что это такое, и если оно действительно существует ...


Ты не поверишь мне !! Я просто удаляю блок комментариев из моего .sql-файла, и теперь он работает !!!!!!!

CREATE DATABASE  IF NOT EXISTS `issga` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `issga`;
--
-- Table structure for table `protocolo`
--

DROP TABLE IF EXISTS protocolo;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
 CREATE TABLE protocolo (
  `idProtocolo` int(11) NOT NULL AUTO_INCREMENT,
  `tipo` varchar(30) DEFAULT NULL,
  `estado` int(2) DEFAULT 0,
  PRIMARY KEY (`idProtocolo`)
 ) ENGINE=InnoDB AUTO_INCREMENT=142 DEFAULT CHARSET=utf8;
 /*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `protocolo`
--

LOCK TABLES protocolo WRITE;
/*!40000 ALTER TABLE protocolo DISABLE KEYS */;
/* INSERT INTO `protocolo` VALUES () */
/*!40000 ALTER TABLE protocolo ENABLE KEYS */;
UNLOCK TABLES;

Блок удаленных комментариев был следующим:

--
-- Table structure for table `protocolo`
-- 

Я оставил проблемную таблицу в одном файле .sql. После этого я удалил комментарии, остался только код, и ошибка исчезла.


У меня был такой же случай. Проблема заключалась в разрешении родительского каталога.

Во время тестирования я копировал файлы из mysql и из него.

drwx------   3 _mysql  wheel 

было недостаточно, нужно было:

-rw-rw----   3 _mysql  wheel 

Извините, что воскрес.


У меня была такая же проблема, и похоже, что имя базы данных было чувствительным к регистру. Моя база данных называется:

Mydatabase

Хотя мой сценарий включал

USE mydatabase

Как только я изменил имя базы данных на правильный случай, все это, казалось, сработало. Использование инструментария MYSQL для MAC OSX


У меня была эта проблема на Win7 в Sql Maestro для MySql 12.3. Огромное раздражение, шоу-стоп на самом деле. Ничто не помогло, даже не отбросило и не воссоздало базу данных. У меня есть такая же настройка на XP, и она работает там, поэтому, прочитав ваши ответы о разрешениях, я понял, что это должны быть разрешения Win7. Поэтому я запускал MySql как администратор, и хотя Sql Maestro запускался нормально, ошибка исчезла. Таким образом, это должно было быть проблемой разрешения между Win7 и MySql.


Эта проблема также возникает, если в базе данных существует «представление» (мнимая таблица) как одно и то же имя, что и наше новое имя таблицы.


Я борюсь с той же проблемой. Я не могу создать таблицу, даже если она не существует. Я пробовал все вышеперечисленные решения без успеха.

Моим решением было удалить файлы ib_logfil0 , ib_logfile1 , ibdata1 и auto.cnf из папки данных MySQL; перед удалением этих файлов обязательно остановите службу MySQL.

Затем после перезапуска службы MySQL воссоздал эти файлы, и я смог запустить сценарий резервного копирования, все мои CREATE были сохранены (файл sqldump).


Я получил ту же ошибку, и REPAIR TABLE (из ответа @ NullUserException) не помог.

В итоге я нашел это решение :

sudo mysqladmin flush-tables

Для меня, без sudo , я получил следующую ошибку:

mysqladmin: refresh failed; error: 'Access denied; you need the RELOAD privilege for this operation'

(Работает на OS X 10.6)


Я также столкнулся с этой проблемой, когда пытаюсь создать таблицу, в которой говорилось, что она уже существует, и сбросив таблицу, сказал, что ее не существует.

Я сделал «FLUSH TABLES», и это устранило проблему.





mysql-error-1050