Установка Drupal PDOException - PullRequest
       7

Установка Drupal PDOException

3 голосов
/ 29 сентября 2011

http://localhost есть проблема:

PDOException: SQLSTATE [42S02]: Базовая таблица или представление не найдено: 1146 Таблица 'drupal_test.semaphore' не существует: SELECT expire, значение FROM {семафор} ГДЕ имя =: имя;Массив ([: name] => variable_init) в lock_may_be_available () (строка 165 из /var/www/drupal/includes/lock.inc).

Это моя конфигурация базы данных:

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupal_test',
      'username' => 'root',
      'password' => 'XXX',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

Что делать?

Ответы [ 5 ]

9 голосов
/ 05 июля 2012

Это только что случилось со мной. Я вручную добавил информацию о базе данных в settings.php и попытался запустить скрипт установки, открыв http://localhost/mysubdirectory вместо добавления информации о базе данных через скрипт установки. Drupal увидел информацию о БД и подумал, что она установлена, поэтому он искал свои таблицы Drupal, не смог их найти и выдал ошибку.

Решением для меня было просто запустить скрипт вручную (перейдя на http://localhost/mysubdirectory/install.php). Надеюсь это поможет!

3 голосов
/ 29 сентября 2011

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

1 голос
/ 29 сентября 2011

semaphore - это базовая таблица для хранения семафоров, блокировок, флагов и т. Д., Которые нельзя хранить как переменные Drupal, поскольку они не должны кэшироваться.В некоторых версиях обновления (6.xx-6.yy) он был потерян, поэтому просто создайте его:

CREATE TABLE IF NOT EXISTS `semaphore` (
  `name` varchar(255) NOT NULL DEFAULT '',
  `value` varchar(255) NOT NULL DEFAULT '',
  `expire` double NOT NULL,
  PRIMARY KEY (`name`),
  KEY `expire` (`expire`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
0 голосов
/ 19 апреля 2013

Эта проблема связана с типом базы данных MySQL. Если вы перемещаете свой сайт на другой сервер, возможно, ваш тип базы данных не соответствует и использует InnoDB. Из-за этого вам нужно изменить тип таблицы базы данных с помощью этой команды.

ALTER TABLE **table_name** ENGINE = MyISAM;
0 голосов
/ 29 сентября 2011

Попытка чтения таблицы не найдена.

Если вы устанавливаете новый модуль, попробуйте переустановить этот модуль или удалить его. Но если вы ничего не устанавливаете, вам нужно переустановить все drupal :(

...