Назад | Перейти на главную страницу

Ведущее устройство mysql «таблица уже существует», но таблица не существует

У меня есть 1 главный процесс mysql и 2 подчиненных.

Сегодня на обоих рабах вижу:

Таблица ошибокbgbilling.contract_status_balance_dump"уже существует" по запросу. База данных по умолчанию: bgbilling. Запрос: 'CREATE TABLE contract_status_balance_dump (UNIQUE (cid)) SELECT cid, MAX (yy * 12 + (mm-1))% 12 + 1 AS mm, FLOOR (MAX (yy * 12 + (mm-1)) / 12 ) AS yy FROM contract_balance ГРУППА ПО cid '

"показать таблицы" не показывает эту таблицу.

Я попытался остановить подчиненное устройство и сделать "сбросить таблицу contract_status_balance_dump", но:

ОШИБКА 1051 (42S02): неизвестная таблица «contract_status_balance_dump»

Насколько это возможно? И как это исправить?

убедитесь, что при проверке ведомого устройства вы запускаете команду ls bgbilling / contract_status_balance_dump внутри базы данных bgbilling. Надеюсь, это поможет, удачи :)

Вот как это исправить

STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
use bgbilling
DROP TABLE IF EXISTS contract_status_balance_dump;
CREATE TABLE contract_status_balance_dump( UNIQUE(cid) )
SELECT cid, MAX(yy*12+(mm-1))%12 + 1 AS mm,FLOOR(MAX(yy*12+(mm-1)) / 12) AS yy
FROM contract_balance GROUP BY cid;
START SLAVE;
SHOW SLAVE STATUS\G