SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 31.05.2018 09:42:32

olegspecialist
Участник
Зарегистрирован: 31.05.2018
Сообщений: 4

После удаления таблицы InnoDB не могу создать снова.

В CMS Drupal есть таблица _cache_page . В ней возникли ошибки. Я не мог создать дамп базы. Соответственно решил ее уалить и создать снова. Удалить ее смог сразу и быстро, а вот создать не тут-то и было. Ошибка
ERROR 1005 (HY000) at line 25 in file: '/cache_page_start.sql': Can't create table 'post_cache_page' (errno: -1)
Query OK, 0 rows affected (0.00 sec)

ERROR 1146 (42S02) at line 41 in file: '/cache_page_start.sql': Table 'post.post_cache_page' doesn't exist
ERROR 1146 (42S02) at line 42 in file: '/cache_page_start.sql': Table 'post.post_cache_page' doesn't exist
ERROR 1146 (42S02) at line 43 in file: '/cache_page_start.sql': Table 'post.post_cache_page' doesn't exist

Содержимое файла cache_page_start.sql
--
-- Table structure for table `post_cache_page`
--

CREATE TABLE `post_cache_page` (
  `cid` varchar(255) NOT NULL DEFAULT '',
  `data` longblob,
  `expire` int(11) NOT NULL DEFAULT '0',
  `created` int(11) NOT NULL DEFAULT '0',
  `headers` text,
  `serialized` smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (`cid`),
  KEY `expire` (`expire`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `post_cache_page`
--

LOCK TABLES `post_cache_page` WRITE;
/*!40000 ALTER TABLE `post_cache_page` DISABLE KEYS */;
/*!40000 ALTER TABLE `post_cache_page` ENABLE KEYS */;
UNLOCK TABLES;
===============================================
И самое интересное что поменяв ее на MyISAM создается без проблем.
Подозреваю, что остались хвосты в таблице information_schema
Или еще где-то. Вот как эти хвосты почистить? Или как выйти из ситуации?
Спасибо.

Неактивен

 

#2 31.05.2018 13:45:38

olegspecialist
Участник
Зарегистрирован: 31.05.2018
Сообщений: 4

Re: После удаления таблицы InnoDB не могу создать снова.

Я предполагаю, что ошибка в хранилище. А именно в БД information_schema. Например я ее удалил а в information_schema
есть запись об этой таблице
(104518,'post','post_cache_page',1,9,104516)
Может в этом все дело?
дампы я все сделал ошибок нет.
MyISAM или InnoDB - мне все равно. Но движек друпала создал InnoDB и работал. Вот и хотелось бы вернуть как было.
А не получается.

Неактивен

 

#3 31.05.2018 13:55:41

olegspecialist
Участник
Зарегистрирован: 31.05.2018
Сообщений: 4

Re: После удаления таблицы InnoDB не могу создать снова.

update INNODB_SYS_TABLES SET NAME=post_cache_page2 WHERE TABLE_ID=104518;

Пробовал выполнить запрос, недает доступ к базе.
Access denied for user 'root'@'localhost' to database 'information_schema'

А как его получить?

Неактивен

 

#4 01.06.2018 11:17:05

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: После удаления таблицы InnoDB не могу создать снова.

INFORMATION_SCHEMA — это информационная база, из нее можно только читать. А вот с ошибками надо разбираться отдельно. Какие были ошибки (почему не удавалось создать дамп)? Как Вы удалили таблицу? Как Вы пытаетесь ее создать? Какая ошибка при этом возникает? В журнале ошибок MySQL може быть написана более подробная информация.

Неактивен

 

#5 01.06.2018 14:53:50

olegspecialist
Участник
Зарегистрирован: 31.05.2018
Сообщений: 4

Re: После удаления таблицы InnoDB не могу создать снова.

paulus написал:

INFORMATION_SCHEMA — это информационная база, из нее можно только читать. А вот с ошибками надо разбираться отдельно. Какие были ошибки (почему не удавалось создать дамп)? Как Вы удалили таблицу? Как Вы пытаетесь ее создать? Какая ошибка при этом возникает? В журнале ошибок MySQL може быть написана более подробная информация.

Лог mysql
========
180601 14:23:00  InnoDB: Warning: trying to init to the tablespace memory cache
InnoDB: a tablespace 109561 of name './post/post_cache_page.ibd',
InnoDB: but a tablespace 109538 of the same name
InnoDB: already exists in the tablespace memory cache!
InnoDB: We assume that InnoDB did a crash recovery, and you had
InnoDB: an .ibd file for which the table did not exist in the
InnoDB: InnoDB internal data dictionary in the ibdata files.
InnoDB: We assume that you later removed the .ibd and .frm files,
InnoDB: and are now trying to recreate the table. We now remove the
InnoDB: conflicting tablespace object from the memory cache and try
InnoDB: the init again.

======

Неактивен

 

#6 06.06.2018 03:33:13

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: После удаления таблицы InnoDB не могу создать снова.

есть ли у вас файл post_cache_page.frm?

включен ли режим innodb_file_per_table? (если да, то есть ли файл post_cache_page.ibd?)

сейчас можете создать дамп?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson