我的本地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).
我随后在google如何解决这个错误,我发现我必须创建一个表。所以我开了查询来创建表:
但出乎我的意料,这是给下面的错误:(drupal722
是我的数据库名)
#1146 - Table 'drupal722.semaphore' doesn't exist
现在,我有两个大问题:
为什么
Create table
查询正在给我“表不存在”的错误。很明显,我知道表不存在,所以我想创建表,所以我发射了Create table
的查询。如何解决上述与Drupal相关的错误让我的网站恢复工作?
BTW,我已经问上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...';`
,但问题仍然存在。错误也与此查询相同...
你能够创建其他表吗?尝试使用简单的“CREATE TABLE ...”语句(不包含“IF NOT EXISTS”部分)。然后做一个'SHOW TABLES'。你有什么东西吗? –
告诉我有关您的操作系统的信息... – Hackerman
您与哪个用户连接?也许用户没有执行'CREATE'语句所需的权限? –