这是drupal中常见的错误,你们可能已经看到过这样的错误:
PDOException: SQLSTATE[42S02]: Base table or view not found, table .... does not exist.当我试图安装drupal7时,它会报告一个信号量表不存在的错误。我试图通过这个查询手动创建它。
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...';它报告了同样的错误。我把InnoDB换成了myISAM,它成功了!我发现服务器上的mysql不支持带有InnoDB引擎的表,不幸的是,默认情况下,drupal7会用这个引擎创建所有表。是否有任何方法将此默认值更改为MyISAM?
发布于 2014-01-01 12:16:31
模式定义可以采用'mysql_engine'的参数(默认为'InnoDB‘),在createTableSql()中。
理论上,您可以使用自定义模块对所有定义的模式进行更改,并更改引擎。
然而,这样做是非常值得怀疑的。如果您重视您的网站和数据,您不应该使用MyISAM,除非您了解这两个引擎的区别。
切换到支持InnoDB的提供程序。在5.5岁时,MySQL本身就是默认为InnoDB。我对任何不支持InnoDB的供应商都会非常怀疑。
发布于 2014-08-22 06:22:54
试试这条路:(从这里:https://www.drupal.org/node/1089724 )
在includes>database>mysql>shema.inc中,在第84行,我将'mysql_engine‘=> 'InnoDB’改为'mysql_engine‘=> 'MyISAM’。
对我来说很管用。
https://drupal.stackexchange.com/questions/98640
复制相似问题