Как исправить ошибку 1050 mysql

I’m adding this table:

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)
);

And I get a 1050 «table already exists»

But the table does NOT exist. Any ideas?

EDIT: more details because everyone seems to not believe me :)

DESCRIBE contenttype

yields:

1146 — Table ‘gunzfact_vbforumdb.contenttype’ doesn’t exist

and

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 ) ,

Yields:

1050 — Table ‘contenttype’ already exists

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

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’ уже существует

I am trying to create a new column in a mysql table using the following command:

ALTER TABLE PEDIDOS_DETALHE
ADD COLUMN QTD_CAIXAS INT NOT NULL DEFAULT ‘0’;

When I execute this command, I get the following error:

Error Code: 1050. Table ‘magazine/#sql-ib583’ already exists

The mysql gives an error in a table with another name.

What is the problem? I didn’t understand the error.

Thanks a lot

André

asked Oct 20, 2015 at 1:22

André Scaravelli's user avatar

Sounds like you’ve got an orphaned temp table.

Have a look at the «Orphaned Intermediate Tables» section in the following link for troubleshooting:

https://dev.mysql.com/doc/refman/5.0/en/innodb-troubleshooting-datadict.html

If MySQL crashes in the middle of an ALTER TABLE operation, you may be left with an orphaned intermediate table. Intermediate table names begin with “#sql-”. In your data directory you will see an #sql-.ibd file and an accompanying #sql-.frm file with the same name. The intermediate table is also listed in Table Monitor output.

If both the #sql-.ibd and #sql-.frm files appear in your data directory, drop the intermediate table by issuing a DROP TABLE statement, enclosing the table name in backticks. For example:

mysql> DROP TABLE #sql-1291_3;
Query OK, 0 rows affected (0.01 sec)

Enclosing the table name in backticks is required to perform SQL statements on table names with special characters such as “#”.

If there is no table format file (#sql-.frm file) in your data directory or the DROP TABLE operation fails, create a new .frm file that matches the table schema of the #sql-.ibd file (it must have the same columns and indexes defined). To do this, perform the following steps:

  1. Determine if the #sql-*.ibd file has a pre-ALTER or post-ALTER schema definition. You can view the columns and indexes of the intermediate table using the Table Monitor.

  2. Once you have determined if the #sql-.ibd file has a pre-ALTER or post-ALTER schema definition, create a matching #sql-.frm file in a different database directory. For example, if an intermediate table has a post-ALTER schema definition, create an .frm file that matches the altered schema definition:

    mysql> CREATE TABLE tmp LIKE employees.salaries; ALTER TABLE tmp DROP COLUMN to_date;
    Query OK, 0 rows affected (0.02 sec)

    Query OK, 0 rows affected (0.06 sec)
    Records: 0 Duplicates: 0 Warnings: 0

  3. Copy the .frm file to the database directory where the orphaned table is located and rename it to match the name of the #sql-*.ibd file

    shell> cp tmp.frm employees/#sql-sql-1291_3.frm

  4. Drop the intermediate table by issuing a DROP TABLE statement, enclosing the table name in backticks. For example:

    mysql> DROP TABLE #sql-1291_3;
    Query OK, 0 rows affected (0.01 sec)

answered Oct 20, 2015 at 1:40

mal-wan's user avatar

2

In my case problem was missing ALTER permission, so I had to grant it like

mysql -u root -p
/* type your password */
GRANT ALTER ON yourschema.* TO 'youruser'@'%';

Without this permission MySQL Workbench modifies original ALTER query and tries to create my table – and obviously fails as the table already exists.

answered Apr 21, 2018 at 0:59

Nikita Bosik's user avatar

Nikita BosikNikita Bosik

8411 gold badge14 silver badges20 bronze badges

Try This Method

ALTER TABLE table_name ADD COLUMN IF NOT EXISTS column_name tinyint(1) DEFAULT 0;

answered Dec 4, 2019 at 8:11

Rahul Kr Daman's user avatar

If you’re getting an error that reads something like “ERROR 1050 (42S01): Table ‘customers’ already exists” when trying to create a table in MySQL, it’s probably because there’s already a table in the database with the same name.

To fix this issue, either change the name of the table you’re trying to create, or check the existing table to see if it’s the one you actually need.

Example of Error

Here’s an example of code that produces the error:

CREATE TABLE Customers (
  CustomerId int NOT NULL PRIMARY KEY,
  CustomerName varchar(60) NOT NULL
  );

Result:

ERROR 1050 (42S01): Table 'customers' already exists

In this case, I’m trying to create a table called Customers, but it already exists in the database.

Solution 1

The most obvious solution is to change the name of the table we’re creating:

CREATE TABLE Customers2 (
  CustomerId int NOT NULL PRIMARY KEY,
  CustomerName varchar(60) NOT NULL
  );

Result:

Query OK, 0 rows affected (0.02 sec)

Here, I simply renamed the table to Customers2. In practice, we would probably give it a more appropriate name.

We should also be mindful that if there’s already a table with the same name as the one we’re trying to create, there’s a possibility that our desired table has already been created. In this case we wouldn’t need to recreate it (unless we had good reason). We could either just go ahead and use it, or we could alter it to suit our new requirements.

Solution 2

Another way to deal with this error is to suppress it. We can modify our CREATE TABLE statement to only create the table if it doesn’t already exist:

CREATE TABLE IF NOT EXISTS Customers (
  CustomerId int NOT NULL PRIMARY KEY,
  CustomerName varchar(60) NOT NULL
  );

Result:

Query OK, 0 rows affected, 1 warning (0.00 sec)

In this case, we got a warning. Let’s check the warning:

SHOW WARNINGS;

Result:

+-------+------+----------------------------------+
| Level | Code | Message                          |
+-------+------+----------------------------------+
| Note  | 1050 | Table 'Customers' already exists |
+-------+------+----------------------------------+
1 row in set (0.00 sec)

The warning explicitly tells us that the table already exists.

The Table REALLY Doesn’t Exist?

If you believe that the table really doesn’t exist, perhaps there’s something else going on. See this article on Stack Overflow for a discussion on possible solutions.

Содержание

  1. Database.Guide
  2. Beginners
  3. Categories
  4. Fix ERROR 1050 (42S01) “Table … already exists” in MySQL
  5. Example of Error
  6. Solution 1
  7. Solution 2
  8. The Table REALLY Doesn’t Exist?
  9. Mysql 1050 Ошибка «Таблица уже существует», хотя на самом деле это не так
  10. 24 ответа
  11. Ошибка Mysql 1050 «Таблица уже существует», когда на самом деле она не

Database.Guide

Beginners

Categories

  • Azure SQL Edge (16)
  • Database Concepts (48)
  • Database Tools (70)
  • DBMS (8)
  • MariaDB (420)
  • Microsoft Access (17)
  • MongoDB (265)
  • MySQL (375)
  • NoSQL (7)
  • Oracle (296)
  • PostgreSQL (255)
  • Redis (184)
  • SQL (588)
  • SQL Server (887)
  • SQLite (235)

Fix ERROR 1050 (42S01) “Table … already exists” in MySQL

If you’re getting an error that reads something like “ERROR 1050 (42S01): Table ‘customers’ already exists” when trying to create a table in MySQL, it’s probably because there’s already a table in the database with the same name.

To fix this issue, either change the name of the table you’re trying to create, or check the existing table to see if it’s the one you actually need.

Example of Error

Here’s an example of code that produces the error:

In this case, I’m trying to create a table called Customers , but it already exists in the database.

Solution 1

The most obvious solution is to change the name of the table we’re creating:

Here, I simply renamed the table to Customers2 . In practice, we would probably give it a more appropriate name.

We should also be mindful that if there’s already a table with the same name as the one we’re trying to create, there’s a possibility that our desired table has already been created. In this case we wouldn’t need to recreate it (unless we had good reason). We could either just go ahead and use it, or we could alter it to suit our new requirements.

Solution 2

Another way to deal with this error is to suppress it. We can modify our CREATE TABLE statement to only create the table if it doesn’t already exist:

In this case, we got a warning. Let’s check the warning:

The warning explicitly tells us that the table already exists.

The Table REALLY Doesn’t Exist?

If you believe that the table really doesn’t exist, perhaps there’s something else going on. See this article on Stack Overflow for a discussion on possible solutions.

Источник

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

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

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

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

1146 — Таблица ‘gunzfact_vbforumdb.contenttype’ не существует

1050 — Табл. ‘contenttype’ уже существует

24 ответа

Серьезно, теперь у вас, вероятно, есть разбитая таблица. Попробуйте:

  • DROP TABLE IF EXISTS contenttype
  • REPAIR TABLE contenttype
  • Если у вас есть достаточные разрешения, удалите файлы данных (в/mysql/data/db_name)

из журнала MySQL:

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

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

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

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

Вам может понадобиться очистить кеш таблицы. Например:

Встречая ту же проблему (создайте таблицу InnoDB), это то, что окончательно сработало для меня:

Я проверил файлы, разрешения, попытался выполнить REPAIR и FLUSH, но ничего не получилось.

Итак, если это вариант, переместите все рабочие таблицы в другую базу данных, отбросьте старую (вам может потребоваться вручную удалить любые файлы из папки базы данных до того, как она начнет работать), переименуйте новую, должен «вернуться на ваш путь». По-видимому, все, что «кэшируется» с помощью InnoDB, отбрасывается вместе с исходной базой данных.

Я борюсь с этим весь день: у меня есть Perl script, который строит набор таблиц, сначала делая DROP IF EXISTS . на них, а затем CREATE их. DROP преуспел, но на CREATE я получил это сообщение об ошибке: table already exists

Наконец-то я понял: новая версия MySQL, которую я использую, имеет двигатель InnoDB по умолчанию ( «show engineG;» ). Я изменил его в файле my.cnf по умолчанию на MyISAM, повторно запустил MySQL, и теперь я больше не получаю ошибку «таблица уже существует».

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

Решение:

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

  • Перейдите в папку MySQL, в которой вы ее установили.
  • Перейдите в папку данных внутри нее.
  • Выберите свою базу данных и зайдите в нее.
  • База данных создает файлы формата .frm.
  • удалить конкретный файл таблицы.
  • Теперь создайте таблицу еще раз.

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

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

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

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

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

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

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

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

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

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

У меня была такая же проблема в Mac OS X и MySQL 5.1.40. Я использовал eclipse для редактирования моего SQL script, и я попробовал MySQLWorkbench 5.2.28. Вероятно, он преобразует символы новой строки в формат Mac. Я понятия не имел, что случилось с моим script, пока я не прокомментировал первую строку в файле. После этого этот script был интерпретирован mysql как один комментарий. Для этого я использовал встроенное приложение TextEdit Mac. После того, как разрывы строк были преобразованы в правильный формат, ошибка 1050 исчезла.

Обновление для пользователей Eclipse:

Чтобы настроить окончание по умолчанию для новых файлов, созданных по всей рабочей области:

Окно → Настройки → Общие → Рабочая область → Новая строка текстового файла разделитель.

Чтобы преобразовать существующие файлы, откройте файл для редактирования и для текущего файла, перейдите в меню:

Файл → Преобразование разделителей строк в

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

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

Автоматизированное решение, которое сработало для меня, — это заменить стандартную таблицу drop на этот sed во время дампа, чтобы также удалить любые существующие представления:

Или, если вы предпочитаете печатать в файл для резервного копирования

Или, если вы получили сбрасываемый файл и импортируете его в свой db

Вы получаете идею

Примечание: важно добавить ^ в начало замещающего регулярного выражения, потому что в дампах, которые вы не хотите касаться, есть другие типы команд DROP TABLE IF EXISTS .

У вас есть что-то вроде этого:

Чтобы иметь что-то вроде этого:

У меня возникли огромные проблемы с ошибкой 1050 и 150.

Проблема заключалась в том, что я пытался добавить ограничение с ON DELETE SET NULL в качестве одного из условий.

Переход на ON DELETE NO ACTION позволил мне добавить необходимые ограничения FK.

К сожалению, сообщения об ошибках MySql совершенно бесполезны, поэтому я должен был найти это решение итеративно и с помощью ответов на вопрос выше.

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

Моя настройка была:

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

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

1146 – Таблица ‘gunzfact_vbforumdb.contenttype’ не существует

1050 – Табл. ‘contenttype’ уже существует

Серьезно, теперь у вас, вероятно, есть разбитая таблица. Попробуйте:

  • DROP TABLE IF EXISTS contenttype
  • REPAIR TABLE contenttype
  • Если у вас есть достаточные разрешения, удалите файлы данных (в/mysql/data/db_name)

из журнала MySQL:

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

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

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

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

Вам может понадобиться очистить кеш таблицы. Например:

Я борюсь с этим весь день: у меня есть Perl script, который строит набор таблиц, сначала делая DROP IF EXISTS . на них, а затем CREATE их. DROP преуспел, но на CREATE я получил это сообщение об ошибке: table already exists

Наконец-то я понял: новая версия MySQL, которую я использую, имеет двигатель InnoDB по умолчанию ( “show engineG;” ). Я изменил его в файле my.cnf по умолчанию на MyISAM, повторно запустил MySQL, и теперь я больше не получаю ошибку “таблица уже существует”.

Встречая ту же проблему (создайте таблицу InnoDB), это то, что окончательно сработало для меня:

Я проверил файлы, разрешения, попытался выполнить REPAIR и FLUSH, но ничего не получилось.

Итак, если это вариант, переместите все рабочие таблицы в другую базу данных, отбросьте старую (вам может потребоваться вручную удалить любые файлы из папки базы данных до того, как она начнет работать), переименуйте новую, должен “вернуться на ваш путь”. По-видимому, все, что “кэшируется” с помощью InnoDB, отбрасывается вместе с исходной базой данных.

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

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

Я сделал “FLUSH TABLES”, и он очистил проблему.

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

Решение:

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

  • Перейдите в папку MySQL, в которой вы ее установили.
  • Перейдите в папку данных внутри нее.
  • Выберите свою базу данных и зайдите в нее.
  • База данных создает файлы формата .frm.
  • удалить конкретный файл таблицы.
  • Теперь создайте таблицу еще раз.

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

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

У меня была такая же проблема в Mac OS X и MySQL 5.1.40. Я использовал eclipse для редактирования моего SQL script, и я попробовал MySQLWorkbench 5.2.28. Вероятно, он преобразует символы новой строки в формат Mac. Я понятия не имел, что случилось с моим script, пока я не прокомментировал первую строку в файле. После этого этот script был интерпретирован mysql как один комментарий. Для этого я использовал встроенное приложение TextEdit Mac. После того, как разрывы строк были преобразованы в правильный формат, ошибка 1050 исчезла.

Обновление для пользователей Eclipse:

Чтобы настроить окончание по умолчанию для новых файлов, созданных по всей рабочей области:

Окно → Настройки → Общие → Рабочая область → Новая строка текстового файла разделитель.

Чтобы преобразовать существующие файлы, откройте файл для редактирования и для текущего файла, перейдите в меню:

Файл → Преобразование разделителей строк в

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

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

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

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

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

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

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

Хотя мой script включен

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

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

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

Вы не поверите мне! Я только что удалил блок комментариев из моего файла .sql, и теперь он работает.

Удаленный блок комментариев был таким:

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

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

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

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

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

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

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

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

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

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

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

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

Моя настройка была:

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

У меня возникли огромные проблемы с ошибкой 1050 и 150.

Проблема заключалась в том, что я пытался добавить ограничение с ON DELETE SET NULL в качестве одного из условий.

Переход на ON DELETE NO ACTION позволил мне добавить необходимые ограничения FK.

К сожалению, сообщения об ошибках MySql совершенно бесполезны, поэтому я должен был найти это решение итеративно и с помощью ответов на вопрос выше.

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

Автоматизированное решение, которое сработало для меня, – это заменить стандартную таблицу drop на этот sed во время дампа, чтобы также удалить любые существующие представления:

Или, если вы предпочитаете печатать в файл для резервного копирования

Или, если вы получили сбрасываемый файл и импортируете его в свой db

Вы получаете идею

Примечание: важно добавить ^ в начало замещающего регулярного выражения, потому что в дампах, которые вы не хотите касаться, есть другие типы команд DROP TABLE IF EXISTS .

У вас есть что-то вроде этого:

Чтобы иметь что-то вроде этого:

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

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

“Добавить оператор DROP TABLE/VIEW/PROCEDURE/FUNCTION/EVENT/TRIGGER”

Источник

Понравилась статья? Поделить с друзьями:
  • Как исправить ошибку 105 стим
  • Как исправить ошибку 105 на телевизоре lg
  • Как исправить ошибку 105 на планшете
  • Как исправить ошибку 1049
  • Как исправить ошибку 1045