Error 1050 42s01 at line 1 table role already exists zabbix

Ставлю zabbix на centos7 и накосячил с базой удалил ее просто руками из /var/lib/mysql/ ( пароль ввел не тот) базу создал заново, но таблицы не могу создать, что то пошло не так 🙂 Что делать? Где какие хвосты остались? переустанови мускул же! А сделать еще раз drop database(терять то уже нечего), а потом create […]

Содержание

  1. Ставлю zabbix на centos7 и накосячил с базой
  2. forum.lissyara.su
  3. Не получается настроить MySQL для Zabbix на FreeBSD 9.2
  4. Не получается настроить MySQL для Zabbix на FreeBSD 9.2
  5. Услуги хостинговой компании Host-Food.ru
  6. Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2
  7. Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2
  8. Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2
  9. Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2
  10. Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2
  11. Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2
  12. Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2
  13. Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2
  14. Database.Guide
  15. Beginners
  16. Categories
  17. Fix ERROR 1050 (42S01) “Table … already exists” in MySQL
  18. Example of Error
  19. Solution 1
  20. Solution 2
  21. The Table REALLY Doesn’t Exist?
  22. mysql_db generates error 1050 when importing database from sql file #43577
  23. Comments
  24. Ошибка Mysql 1050 «Таблица уже существует», хотя на самом деле это не так.

Ставлю zabbix на centos7 и накосячил с базой

удалил ее просто руками из /var/lib/mysql/ ( пароль ввел не тот) базу создал заново, но таблицы не могу создать, что то пошло не так 🙂

Что делать? Где какие хвосты остались?

переустанови мускул же!

А сделать еще раз drop database(терять то уже нечего), а потом create database?

Информация об innodb-таблицах записывается ещё и в ibdata файл. Поэтому простое удаление каталога с базой не удаляет всю информацию о ней (никогда так не удаляйте).
Сейчас получилась поломанная ситуация. Исправить можно как вам уже написали — drop database, а потом заново create database.

А сделать еще раз drop database(терять то уже нечего), а потом create database?

Спасибо помогло, саму базу я не дропал, а только таблицу.

Информация об innodb-таблицах записывается ещё и в ibdata файл. Поэтому простое удаление каталога с базой не удаляет всю информацию о ней (никогда так не удаляйте).

Про это даже уже находил где то, но лазил лазил, так и не нашел где это вычистить.

Раньше у меня прокатывало, правда Федора старенькая у меня везде до centos7, видимо поменялось что то. Спасибо

Так допустимо было делать с MyISAM табличками. С InnoDB категорически нельзя.

Источник

forum.lissyara.su

Если проблема не решается сама, значит она неразрешима

Не получается настроить MySQL для Zabbix на FreeBSD 9.2

Не получается настроить MySQL для Zabbix на FreeBSD 9.2

Здравствуйте.
Установил apache, mysql, и zabbix. Создал пользователя zabbix, и добавил его в группу zabbix.
Устанавливал zabbix следующим образом:
cd /usr/ports/net-mgmt/zabbix2-server
make install clean

В mysql создал DB:
CREATE DATABASE zabbix CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY ‘zabbix’;
FLUSH PRIVILEGES;

А вот зайти в /usr/local/share/zabbix2/server/create
не могу, так как в /usr/local/share/zabbix/server/
нет каталога create. Есть только database и upgrades.
Как быть?

Услуги хостинговой компании Host-Food.ru

Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2

Непрочитанное сообщение Гость » 2013-12-24 15:00:58

Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2

Решил.
1. Поставил с помощью команды sysinstall.
В меню configuration->networking->Zabbix

2. Файлы *.sql нашел в каталоге /usr/local/share/zabbix2/server/database/mysql

3. Создал пользователя и группу в FreeBSD

4. Выполнил в mysql:
CREATE DATABASE zabbix CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY ‘zabbix’;
FLUSH PRIVILEGES;

5. В FreeBSD:
cat schema.sql data.sql images.sql | mysql -uroot -p zabbix
Отправить содержимое файлов в базу данных под именем zabbix под паролем администратора системы управления базой данных.
По умолчанию админ — root, пароль пустой.

Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2

Спасибо за подсказку с путем!

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

65559:20131226:154107.530 [Z3001] connection to database ‘zabbix’ failed: [1045] Access denied for user ‘zabbix’@’localhost’ (using password: YES)
65559:20131226:154107.530 Database is down. Reconnecting in 10 seconds.

в файле zabbix прописал и хост и юзера, пароль от бызы и саму базу.

а при вводе команды : cat schema.sql data.sql images.sql | mysql -uroot -p zabbix
такая ошибка : ERROR 1050 (42S01) at line 1: Table ‘maintenances’ already exists

не пойму куда смотреть. логи читаю не чего такого нет. то что sql не подключается и не понятно из за чего. Если не трудно опиши настройку sql. и этой командой. вожусь уже неделю)) я знаю что просить это все равно что сказать сделай за меня)) но выхода нет.

Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2

К тебе под телнетом можно зайти?

такая ошибка : ERROR 1050 (42S01) at line 1: Table ‘maintenances’ already exists
Обозначает, что таблицы описанные в файлах *.sql уже созданы

Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2

Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2

Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2

Re: Не получается настроить MySQL для Zabbix на FreeBSD 9.2

я так пробывал он валит такую ошибку:

[Z3005] query failed: [1054] Unknown column ‘alert_history’ in ‘field list’ [select alert_history,event_history,refresh_unsupported,discovery_groupid,snmptrap_logging,severity_name_0,severity_name_1,severity_name_2,severity_name_3,severity_name_4,severity_name_5 from config where 1=1 and configid between 0 and 99999999999999]
76588:20131230:070616.881 no records in table ‘config’
76588:20131230:070616.881 [Z3005] query failed: [1054] Unknown column ‘t.value_flags’ in ‘field list’ [select distinct t.triggerid,t.type,t.value,t.value_flags,t.error from hosts h,items i,functions f,triggers t where h.hostid=i.hostid and i.itemid=f.itemid and i.lastclock is not null and f.triggerid=t.triggerid and h.status in (0) and i.status in (0) and i.type not in (2,17) and t.status in (0) and t.triggerid between 0 and 99999999999999]
76588:20131230:070616.881 [Z3005] query failed: [1054] Unknown column ‘alert_history’ in ‘field list’ [select alert_history,event_history,refresh_unsupported,discovery_groupid,snmptrap_logging,severity_name_0,severity_name_1,severity_name_2,severity_name_3,severity_name_4,severity_name_5 from config where 1=1 and configid between 0 and 99999999999999]
76588:20131230:070616.881 [Z3005] query failed: [1054] Unknown column ‘i.lastclock’ in ‘field list’ [select i.itemid,i.hostid,h.proxy_hostid,i.type,i.data_type,i.value_type,i.key_,i.snmp_community,i.snmp_oid,i.port,i.snmpv3_securityname,i.snmpv3_securitylevel,i.snmpv3_authpassphrase,i.snmpv3_privpassphrase,i.ipmi_sensor,i.delay,i.delay_flex,i.trapper_hosts,i.logtimefmt,i.params,i.status,i.authtype,i.username,i.password,i.publickey,i.privatekey,i.flags,i.interfaceid,i.lastclock from items i,hosts h where i.hostid=h.hostid and h.status in (0) and i.status in (0,3) and i.itemid between 0 and 99999999999999]
76588:20131230:070616.881 [Z3005] query failed: [1054] Unknown column ‘t.value_flags’ in ‘field list’ [select distinct t.triggerid,t.description,t.expression,t.error,t.priority,t.type,t.value,t.value_flags from hosts h,items i,functions f,triggers t where h.hostid=i.hostid and i.itemid=f.itemid and f.triggerid=t.triggerid and h.status in (0) and i.status in (0,3) and t.status in (0) and t.flags not in (2) and h.hostid between 0 and 99999999999999]
76588:20131230:070616.882 no records in table ‘config’

меня смущает то что ему не хватает какой то записи в таблице ‘config’!

Источник

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.

Источник

mysql_db generates error 1050 when importing database from sql file #43577

SUMMARY

On my first run the mysql_db module imports my init.sql file just fine. The problem is when I rerun ansible it tries to re-import the init.sql and generates the following error:

It looks like this module is not idempotent as it should be able to handle if the sql has already been run.

ISSUE TYPE
COMPONENT NAME
ANSIBLE VERSION
CONFIGURATION

[DEPRECATION WARNING]: DEFAULT_SUDO_EXE option, In favor of Ansible Become, which is a generic framework. See become_exe. , use become instead. This feature will be
removed in version 2.8. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ANSIBLE_NOCOWS(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = True
ANSIBLE_PIPELINING(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = True
ANSIBLE_SSH_ARGS(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = -C -o ControlMaster=auto -o ControlPersist=600s
ANSIBLE_SSH_CONTROL_PATH_DIR(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = /tmp/.ansible/cp
CACHE_PLUGIN(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = jsonfile
CACHE_PLUGIN_CONNECTION(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = /tmp/ansible_facts
CACHE_PLUGIN_TIMEOUT(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = 86400
DEFAULT_ACTION_PLUGIN_PATH(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = [u’/usr/share/ansible_plugins/action_plugins’]
DEFAULT_CALLBACK_PLUGIN_PATH(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = [u’/usr/share/ansible_plugins/callback_plugins’, u’/Users/manuel.mor
DEFAULT_CALLBACK_WHITELIST(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = [‘profile_tasks’, ‘timer’, ‘bovine_json’]
DEFAULT_CONNECTION_PLUGIN_PATH(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = [u’/usr/share/ansible_plugins/connection_plugins’]
DEFAULT_FILTER_PLUGIN_PATH(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = [u’/usr/share/ansible_plugins/filter_plugins’, u’/Users/manuel.morena/
DEFAULT_FORKS(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = 5
DEFAULT_GATHERING(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = smart
DEFAULT_HASH_BEHAVIOUR(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = replace
DEFAULT_HOST_LIST(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = [u’/Users/manuel.morena/Documents/Projects/ansible-docker/ansible-inventory/scr
DEFAULT_LOOKUP_PLUGIN_PATH(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = [u’/usr/share/ansible_plugins/lookup_plugins’]
DEFAULT_MANAGED_STR(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = Ansible managed: Changes will be overwritten.
DEFAULT_POLL_INTERVAL(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = 15
DEFAULT_ROLES_PATH(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = [u’/Users/manuel.morena/Documents/Projects/ansible-docker/roles’]
DEFAULT_SCP_IF_SSH(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = True
DEFAULT_STRATEGY_PLUGIN_PATH(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = [u’/Users/manuel.morena/Documents/Projects/ansible-docker/external/m
DEFAULT_SUDO_EXE(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = sudo
DEFAULT_TIMEOUT(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = 30
DEFAULT_TRANSPORT(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = smart
DEFAULT_VARS_PLUGIN_PATH(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = [u’/usr/share/ansible_plugins/vars_plugins’]
MERGE_MULTIPLE_CLI_TAGS(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = True
PERSISTENT_COMMAND_TIMEOUT(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = 10
PERSISTENT_CONNECT_RETRY_TIMEOUT(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = 15
PERSISTENT_CONNECT_TIMEOUT(/Users/manuel.morena/Documents/Projects/ansible-docker/ansible.cfg) = 30

OS / ENVIRONMENT

Running Ansible on MAC OSX 10.13.6. Managing Ubuntu 16.04

STEPS TO REPRODUCE
EXPECTED RESULTS

If the sql file has already been processed it should just move on.

ACTUAL RESULTS

The text was updated successfully, but these errors were encountered:

Источник

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

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

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

Но таблицы НЕТ. Любые идеи?

РЕДАКТИРОВАТЬ: подробнее, потому что все, кажется, мне не верят 🙂

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

1050 — Table ‘contenttype’ already exists

Серьезно, у вас, вероятно, сломанный стол. Пытаться:

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

из журнала MySQL:

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

В конце концов я нашел это решение :

У меня без этого sudo была следующая ошибка:

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

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

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

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

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

Решение :

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

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

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

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

Я проверил файловую основу, разрешения, попытался ВОССТАНОВИТЬ и ПРОМЫВИТЬ, но ничего не помогло.

Так что, если это вариант, переместите все рабочие таблицы в другую БАЗУ ДАННЫХ, отбросьте старую (возможно, вам придется вручную удалить все файлы из папки базы данных, прежде чем падение заработает) , переименуйте новую, и вы «должны» быть обратно на свой путь. Очевидно, все, что «кэшируется» с помощью InnoDB, удаляется вместе с исходной базой данных.

У меня была эта проблема на 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).

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

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

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

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

Window -> Preferences -> General -> Workspace -> New text file line delimiter.

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

File -> Convert Line Delimiters To

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

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

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

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

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

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

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

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

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

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

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

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

Пока мой сценарий включен

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

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

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

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

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

Проблема возникла на двух машинах, обе исправили копированием бэкапов. Однако я заметил, что в моей резервной копии были файлы .MYD и .MYI, хотя у меня сложилось впечатление, что эти файлы не используются для InnoDB. Файлы .MYD и .MYI имели владельца root, а файл .frm принадлежал 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:

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.

я так пробывал он валит такую ошибку:

[Z3005] query failed: [1054] Unknown column ‘alert_history’ in ‘field list’ [select alert_history,event_history,refresh_unsupported,discovery_groupid,snmptrap_logging,severity_name_0,severity_name_1,severity_name_2,severity_name_3,severity_name_4,severity_name_5 from config where 1=1 and configid between 0 and 99999999999999]
76588:20131230:070616.881 no records in table ‘config’
76588:20131230:070616.881 [Z3005] query failed: [1054] Unknown column ‘t.value_flags’ in ‘field list’ [select distinct t.triggerid,t.type,t.value,t.value_flags,t.error from hosts h,items i,functions f,triggers t where h.hostid=i.hostid and i.itemid=f.itemid and i.lastclock is not null and f.triggerid=t.triggerid and h.status in (0) and i.status in (0) and i.type not in (2,17) and t.status in (0) and t.triggerid between 0 and 99999999999999]
76588:20131230:070616.881 [Z3005] query failed: [1054] Unknown column ‘alert_history’ in ‘field list’ [select alert_history,event_history,refresh_unsupported,discovery_groupid,snmptrap_logging,severity_name_0,severity_name_1,severity_name_2,severity_name_3,severity_name_4,severity_name_5 from config where 1=1 and configid between 0 and 99999999999999]
76588:20131230:070616.881 [Z3005] query failed: [1054] Unknown column ‘i.lastclock’ in ‘field list’ [select i.itemid,i.hostid,h.proxy_hostid,i.type,i.data_type,i.value_type,i.key_,i.snmp_community,i.snmp_oid,i.port,i.snmpv3_securityname,i.snmpv3_securitylevel,i.snmpv3_authpassphrase,i.snmpv3_privpassphrase,i.ipmi_sensor,i.delay,i.delay_flex,i.trapper_hosts,i.logtimefmt,i.params,i.status,i.authtype,i.username,i.password,i.publickey,i.privatekey,i.flags,i.interfaceid,i.lastclock from items i,hosts h where i.hostid=h.hostid and h.status in (0) and i.status in (0,3) and i.itemid between 0 and 99999999999999]
76588:20131230:070616.881 [Z3005] query failed: [1054] Unknown column ‘t.value_flags’ in ‘field list’ [select distinct t.triggerid,t.description,t.expression,t.error,t.priority,t.type,t.value,t.value_flags from hosts h,items i,functions f,triggers t where h.hostid=i.hostid and i.itemid=f.itemid and f.triggerid=t.triggerid and h.status in (0) and i.status in (0,3) and t.status in (0) and t.flags not in (2) and h.hostid between 0 and 99999999999999]
76588:20131230:070616.882 no records in table ‘config’

меня смущает то что ему не хватает какой то записи в таблице ‘config’!

Ok — Trying out the docker container version of Zabbix for the first time and using this as the reference: https://www.zabbix.com/documentation/4.0/manual/installation/containers

I brought up a mysql container using mysql:5.7.

I then deployed a zabbix-server-mysql:alpine-latest and pointed it to the mysql instance.

I got a log stating:

** Creating ‘zabbix’ user in MySQL database
8/20/2018 11:55:45 AM ** Database ‘zabbix’ already exists. Please be careful with database COLLATE!
8/20/2018 11:55:45 AM ** Creating ‘zabbix’ schema in MySQL
8/20/2018 11:55:45 AM ERROR 1050 (42S01) at line 1: Table ‘users’ already exists

I guess the DB would exist since the mysql container instructions had you create a DB named zabbix. What I don’t expect is that the table ‘users’ already to exist.

A little further down in the logs, I get:

cannot use database «zabbix»: its «users» table is empty (is this the Zabbix proxy database?)

It seems like the initial mysql container deployment either shouldn’t specify a zabbix database, since the zabbix-server-mysql instance tries to create it, or the zabbix-server-mysql instance needs to work some magic if the table already exists.

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

When ALTER TABLE crashes MySQL server it leaves orphaned records in InnoDB dictionary. It is annoying because next time you run the same ALTER TABLE query it will fail with error:

Shell

ERROR 1050 (42S01) at line 1: Table ‘sakila/#sql-ib712’ already exists

1

ERROR 1050 (42S01) at line 1: Table ‘sakila/#sql-ib712’ already exists

The post explains why it happens and how to fix it.

When you run ALTER table InnoDB follows the plan:

Block the original table

Create an empty temporary table with the new structure. The name of the new table is something like #sql-ib712.

Copy all records from the original table to the temporary one

Swap the temporary and original tables

Unblock the original table

The temporary table is a normal InnoDB table except it’s not visible to a user. InnoDB creates a record in the dictionary for the temporary table as for any other table.

If MySQL crashes in the middle of the ALTER process the dictionary ends up with an orphaned table.

We wouldn’t care much if the temporary table name were random. But it’s not and when you run ALTER TABLE again, InnoDB picks up the same name for the temporary table. As long as a record for a table with the same name already exists in the dictionary the subsequent ALTER fails.

How to fix “ERROR 1050 (42S01) at line 1: Table ‘sakila/#sql-ib712’ already exists”

MySQL suggests quite cumbersome method. In short you need to fool MySQL with a fake .frm file so you can DROP the temporary table with an SQL query. It works fine, but the structure of the fake table in .frm file must match the structure in the dictionary. It’s not that easy to find out. Fortunately you don’t need to.

An idea is following.

Not only DROP TABLE removes a records from InnoDB dictionary, DROP DATABASE does it too.

In case of DROP TABLE you need to specify exact name of the table while in case of DROP DATABASE InnoDB will delete all tables for a given database.

To get a clean dictionary for a given database we need to do following:

Create empty temporary database. Let it be tmp1234

Move all tables from the original database to tmp1234

Drop the original database (it’s empty by now, all tables are in tmp1234)

Create the original database again

Move all tables from the temporary database to the original one.

Drop the empty temporary database.

Here’s a script that performs this task. It must be run by root and mysql command should connect to the server without asking the password. Stop all writes to the database before running the script.

#!/usr/bin/env bash

set -eu

for db in `mysql -NBe «SHOW DATABASES» | grep -wv -e mysql -e information_schema -e mysql -e performance_schema`; do

        db_tmp=tmp$RANDOM

        c=`mysql -NBe «select COUNT(*) from information_schema.tables WHERE TABLE_SCHEMA = ‘$db’ AND TABLE_TYPE <> ‘BASE TABLE'»`

        if [ «$c» -ne 0 ]; then

                echo «There are non-base tables (views etc) in $db»

                continue

        fi

        mysql -e «CREATE DATABASE `$db_tmp`»

        IFS=»

«

        for t in `mysql -NBe «SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ‘$db’ AND TABLE_TYPE = ‘BASE TABLE'»`; do

                echo «Moving $db.$t to $db_tmp.$t»

                mysql -e «RENAME TABLE `$db`.`$t` TO `$db_tmp`.`$t`»

        done

        n=`mysql -e «SHOW TABLES» «$db»| wc -l`

        if [ $n -ne 0 ]; then

                echo «there are $n tables in $db , not gonna drop it!»

                exit -1

        fi

        datadir=`mysql -NBe «SELECT @@datadir»`

        rm -f «$datadir/$db/»*

        mysql -e «DROP DATABASE  `$db`»

        mysql -e «CREATE DATABASE `$db`»

        for t in `mysql -NBe «SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ‘$db_tmp’ AND TABLE_TYPE = ‘BASE TABLE'»`; do

                echo «Moving $db_tmp.$t to $db.$t»

                mysql -e «RENAME TABLE `$db_tmp`.`$t` TO `$db`.`$t`»

        done

        n=`mysql -e «SHOW TABLES» «$db_tmp»| wc -l`

        if [ $n -ne 0 ]; then

                echo «there are $n tables in $db_tmp , not gonna drop it!»

                exit -1

        fi

        mysql -e «DROP DATABASE `$db_tmp`»

done

At the time of database startup, I accidentally deleted the data file, and then I kept working on this table and kept reporting errors. The query report did not exist, but a new table with the same name already existed. The solution is to create a table with the same name in another database and copy its data files.
mysql> show databases;
+ — — — — — — — — — — — — — — — — — — — — +
| Database |
+ — — — — — — — — — — — — — — — — — — — — +
| information_schema |
| mysql |
| performance_schema |
| test |
+——————–+
mysql> use test
mysql> create table t1(id int);
ERROR 1813 (HY000): Tablespace for table ‘`test`.`t1`’ exists. Please DISCARD the tablespace before IMPORT.
mysql> alter table t1 DISCARD tablespace;
ERROR 1146 (42S02): Table ‘test.t1’ doesn’t exist

mysql> create database gg;
mysql> show databases;
+ — — — — — — — — — — — — — — — — — — — — +
| Database |
+ — — — — — — — — — — — — — — — — — — — — +
| information_schema |
| gg |
| mysql |
| performance_schema |
| test
| + — — — — — — — — — — — — — — — — — — — — +
mysql> use gg
Database changed
mysql> create table t1(id int);

go to the database gg
cp-a t1.frm.. /test/t1.frm

mysql> select * from t1;
ERROR 1146 (42S02): Table ‘test.t1’ doesn’t exist
mysql> Alter TABLE T1, TABLESPACE;
Query OK, 0 rows affected, 2 warnings (0.01 SEC)

goes to database gg
cp -a t1.ibd .. /test/t1.ibd
mysql> use test
mysql> select * from t1;
ERROR 1814 (HY000): Tablespace has been discarded for table ‘t1’
mysql> Alter TABLE T1 Import TABLESpace;
Query OK, 0 rows affected, 1 warning (0.04 SEC)
mysql> select * from t1;
Empty set (0.00 SEC)

Read More:

I’m trying to import an older (~version 5) server into a MariaDB docker container.

I created a dump using the mysqldump command (with —all-databases), and when I try to import it I get the following error:

ERROR 1050 (42S01) at line 2071: Table 'user' already exists

I’m trying to import into a brand new container, using the standard command:

 mysql -uroot -p  < [sqldump].sql

I’m a novice when it comes to SQL and was wondering if I’m missing something obvious, or if there is some real incompatibility.

I’d really appreciate your advice.

Thanks!

asked Dec 24, 2020 at 17:04

dkd6's user avatar

2

It sounds like your dump script wants to overwrite the system «mysql» database that contains users and privilege information. If that’s really what you want to do, you can run mysqldump again with the --add-drop-database option, then FLUSH PRIVILEGES after import. I wouldn’t recommend that though, especially if the databases are running different versions.

A better option would be to explicitly choose which databases you want to export by passing their names to the --databases argument, excluding DBs like «mysql», «information_schema» and «performance_schema». You would then grant privileges to the newly imported DBs as needed.

Another quick option would be to edit your existing dump file in a text editor and just take out the part that wants to create the «mysql» tables (including «user» and others).

answered Dec 24, 2020 at 18:56

Google Fail's user avatar

3

Понравилась статья? Поделить с друзьями:
  • Error 105 windows 10
  • Error 105 when loading url что это
  • Error 1075 mysql
  • Error 1075 42000
  • Error 1073807202 labview