创建表查询给我“表不存在”错误

时间:2013-11-15 12:16:51

标签: php mysql database drupal-7 innodb

我当地的Drupal网站崩溃了。

这是错误:
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'drupal722.semaphore' doesn't exist: SELECT expire, value FROM {semaphore} WHERE name = :name; Array ( [:name] => variable_init ) in lock_may_be_available() (line 167 of D:\Projects\wamp\www\drupal\includes\lock.inc).

Uncaught exception thrown in shutdown function. PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'drupal722.semaphore' doesn't exist: DELETE FROM {semaphore} WHERE (value = :db_condition_placeholder_0) ; Array ( [:db_condition_placeholder_0] => 573260675528605a31630a6.23576489 ) in lock_release_all() (line 269 of D:\Projects\wamp\www\drupal\includes\lock.inc).

然后我搜索了如何解决此错误,并发现我将不得不创建一个表。所以我发了一个查询来创建表:

CREATE TABLE IF NOT EXISTS `semaphore` (
    `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique name.',
    `value` varchar(255) NOT NULL DEFAULT '' COMMENT 'A value for the semaphore.',
    `expire` double NOT NULL COMMENT 'A Unix timestamp with microseconds indicating when the semaphore should expire.',
    PRIMARY KEY (`name`),
    KEY `value` (`value`),
    KEY `expire` (`expire`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Table for holding semaphores, locks, flags, etc. that...';`

但令我惊讶的是,它给出了以下错误:( drupal722是我的数据库名称)

#1146 - Table 'drupal722.semaphore' doesn't exist

现在,我有两个问题:

  1. 为什么Create table查询给我“表不存在”错误。很明显,我知道该表不存在,所以我想创建表,所以我发出Create table的查询。

  2. 如何解决上述与Drupal相关的错误,让我的网站恢复工作?

  3. 顺便说一句,我已经在drupal.stackexchange.com here上提出了这个问题,但没有取得丰硕成果所以我再次在这里问。

    在drupal.stackexchange.com上发布问题并与少数人进行讨论后,我已经尝试过以下查询:

    CREATE TABLE `semaphore` (
        `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique name.',
        `value` varchar(255) NOT NULL DEFAULT '' COMMENT 'A value for the semaphore.',
        `expire` double NOT NULL COMMENT 'A Unix timestamp with microseconds indicating when the semaphore should expire.',
        PRIMARY KEY (`name`),
        KEY `value` (`value`),
        KEY `expire` (`expire`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Table for holding semaphores, locks, flags, etc. that...';`
    

    但问题仍然存在。此查询的错误也是相同的......

1 个答案:

答案 0 :(得分:0)

许多drupal用户遇到此问题,请查看此https://drupal.org/node/1308308链接,这可能会对您有所帮助。

尝试删除setting.php文件并复制过去的default.setting.php文件,并使用settting.php文件重命名,然后尝试访问网站。