ошибка PDOException: SQLSTATE[42S02]: Base table or view not found: 1146

Главные вкладки

Аватар пользователя Rainnam Rainnam 18 ноября 2013 в 18:02

вот такая вот ошибка при добавлении эффекта к стилю изображения

PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'tricotdrupal.cache_block' doesn't exist: TRUNCATE {cache_block} ; Array ( ) в функции cache_clear_all() (строка 165 в файле /var/www/tricotGC/tricot.com.ua/includes/cache.inc).

помогите!, что нужно сделать?, как решить? в инете рылся, не нашел решения

Лучший ответ

Комментарии

Аватар пользователя bsyomov bsyomov 18 ноября 2013 в 19:24

У вас нет одной из нужных таблиц в БД. Как это произошло - вам виднее.
Вот вам SQL, который создаст эту таблицу:

CREATE TABLE `cache_block` (
        `cid` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.',
        `data` LONGBLOB NULL COMMENT 'A collection of data to cache.',
        `expire` INT(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.',
        `created` INT(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry was created.',
        `serialized` SMALLINT(6) NOT NULL DEFAULT '0' COMMENT 'A flag to indicate whether content is serialized (1) or not (0).',
        PRIMARY KEY (`cid`),
        INDEX `expire` (`expire`)
)
COMMENT='Cache table for the Block module to store already built...'
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
Аватар пользователя Rainnam Rainnam 19 ноября 2013 в 16:54

bsyomov wrote:
У вас нет одной из нужных таблиц в БД. Как это произошло - вам виднее.
Вот вам SQL, который создаст эту таблицу:

CREATE TABLE `cache_block` (
        `cid` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.',
        `data` LONGBLOB NULL COMMENT 'A collection of data to cache.',
        `expire` INT(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.',
        `created` INT(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry was created.',
        `serialized` SMALLINT(6) NOT NULL DEFAULT '0' COMMENT 'A flag to indicate whether content is serialized (1) or not (0).',
        PRIMARY KEY (`cid`),
        INDEX `expire` (`expire`)
)
COMMENT='Cache table for the Block module to store already built...'
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

Всё печально:
SQL-запрос:
CREATE TABLE IF NOT EXISTS `cache_block` (
`cid` VARCHAR( 255 ) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.',
`data` LONGBLOB COMMENT 'A collection of data to cache.',
`expire` INT( 11 ) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.',
`created` INT( 11 ) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry was created.',
`serialized` SMALLINT( 6 ) NOT NULL DEFAULT '0' COMMENT 'A flag to indicate whether content is serialized (1) or not (0).',
PRIMARY KEY ( `cid` ) ,
KEY `expire` ( `expire` )
) ENGINE = INNODB;
Ответ MySQL: Документация
#1005 - Can't create table 'tricotdrupal.cache_block' (errno: 121) (Детали...)

Аватар пользователя Rainnam Rainnam 19 ноября 2013 в 16:03

Всё печально:

SQL-запрос:

CREATE TABLE IF NOT EXISTS `cache_block` (

`cid` VARCHAR( 255 ) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.',
`data` LONGBLOB COMMENT 'A collection of data to cache.',
`expire` INT( 11 ) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.',
`created` INT( 11 ) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry was created.',
`serialized` SMALLINT( 6 ) NOT NULL DEFAULT '0' COMMENT 'A flag to indicate whether content is serialized (1) or not (0).',
PRIMARY KEY ( `cid` ) ,
KEY `expire` ( `expire` )
) ENGINE = INNODB;

Ответ MySQL: Документация

#1005 - Can't create table 'tricotdrupal.cache_block' (errno: 121) (Детали...)

Аватар пользователя Rainnam Rainnam 19 ноября 2013 в 16:41

andriy.olischuk wrote:
А (Детали...) какие?
У пользователя нет прав на создание таблицы?

Supports transactions, row-level locking, and foreign keys

Аватар пользователя andriy.olischuk andriy.olischuk 19 ноября 2013 в 16:49

Вероятно (просто в качестве догадки) файл frm таблицы был удалён как-то напрямую. Попробуйте сделать DROP TABLE 'tricotdrupal.cache_block', а потом повторить создание.

Аватар пользователя Rainnam Rainnam 19 ноября 2013 в 16:53

andriy.olischuk wrote:
Вероятно (просто в качестве догадки) файл frm таблицы был удалён как-то напрямую. Попробуйте сделать DROP TABLE 'tricotdrupal.cache_block', а потом повторить создание.

#1051 - Unknown table 'cache_block'
ответ на
DROP TABLE cache_block

Аватар пользователя drupby drupby 19 ноября 2013 в 17:00

возможно InnoDB DISABLED -а все таблицы MyISAM или InnoDB ? может mysql так сконфигурирован , что можно только созавать таблицы в MyISAM

Аватар пользователя Rainnam Rainnam 19 ноября 2013 в 17:04

drupby wrote:
возможно InnoDB DISABLED -а все таблицы MyISAM или InnoDB ? может mysql так сконфигурирован , что можно только созавать таблицы в MyISAM

все таблицы в InnoDB

хостер пытается решить проблему, но всё никак.
На других хостах всё работает

Аватар пользователя bsyomov bsyomov 20 ноября 2013 в 0:35

errno 121 это duplicate key error
Где-то внутри данных innodb остались хвосты индексов этой таблицы - что-то нехорошее произошло у хостера похоже.

Что нужно сделать - снимаем бекап всей базы.
Дропаем базу.
Создаём базу.
Восстанавливаемся из бекапа.
Выполняем скрипт, приведённый мной выше.

Аватар пользователя Игорек Игорек 25 февраля 2015 в 20:21

Помогите, скрипт сделал. Таблица cache_block есть. Но все равно при update.php выдает

Сообщение об ошибкеPDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'gb_lb3.cache_rules' doesn't exist: TRUNCATE {cache_rules} ; Array ( ) в функции cache_clear_all() (строка 167 в файле /home/virtwww/w_litebeton-ru_3ed513fc/http/includes/cache.inc).
На сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже.

Аватар пользователя bsyomov bsyomov 25 февраля 2015 в 22:27

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

Аватар пользователя Игорек Игорек 26 февраля 2015 в 1:23

"bsyomov" wrote:

Не помогло. Дело оказалось в базе данных. Создал новую базу данных, добавил старый дамп на cache_rules. Потом бэкап действующей базы данных. Ошибка исчезла - полгода она меня мучила. Спасибо за ответ - он направил меня в нужное русло.

Аватар пользователя Romanov-EV Romanov-EV 29 августа 2015 в 22:20

И каково же решение вопроса?

Я долго пытался подключить на новый сайт дамп существующей БД. Но, сайт выдавал сообщения об ошибке.

Решение нашел здесь - https://www.drupal.org/node/1152610 . Добавление этого префикса в settings.php решило эту проблему:

'prefix' => 'dr_',

Аватар пользователя alex.anis alex.anis 30 марта 2020 в 11:03

Здравствуйте! Помогите, пожалуйста! Выдает ошибку в CMS сайта www.lltour.ru, мало тогоб что коронавирус, весь туризм парализован, так еще и сайт полетел, что делать? писал в хостинг, домен, там все ок, а разработчик сайта уже давно сайтами не занимается, не знаю к кому обратиться за помощью, сам не программист, владелец фирмы и домена, 8 лет редактировал сайт сам, вешал модули, виджеты, скрипты, все было ок, а теперь ошибка постоянная, что это значит, как исправить? Помогите, пожалуйста!!! PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'admin_lltour.lltour_pathauto_state' doesn't exist: SELECT 1 AS expression FROM {pathauto_state} pathauto_state WHERE ( (entity_type = :db_condition_placeholder_0) AND (entity_id = :db_condition_placeholder_1) ) FOR UPDATE; Array ( [:db_condition_placeholder_0] => node [:db_condition_placeholder_1] => 5 ) в функции pathauto_ent

Аватар пользователя ivnish ivnish 30 марта 2020 в 11:10

Drupal 7.22, 2013-04-03 (на дворе, к слову, 2020 год)

Тут всё ясно, с очень большой вероятностью сайт заражен. Пишите в личку, обновлю и вылечу. Телеграм контакт есть в моем профиле