1

我正在尝试将 SQL 转储导入另一台服务器。它在第一行失败。我首先创建exp_actions表,然后将一堆数据插入其中,但我得到了这个非常奇怪的错误。

SQL query:

--
-- Database: `ee_cmssite`
--
-- --------------------------------------------------------
--
-- Table structure for table `exp_actions`
--
CREATE TABLE  `exp_actions` (

 `action_id` INT( 4 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
 `class` VARCHAR( 50 ) NOT NULL DEFAULT  '',
 `method` VARCHAR( 50 ) NOT NULL DEFAULT  '',
PRIMARY KEY (  `action_id` )
) ENGINE = MYISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT =21;

MySQL said: 

#1146 - Table 'site_ee.exp_actions' doesn't exist 

为什么不存在?我只是指示它被创建。我完全感到困惑。我试过有无IF_NOT_EXISTS

4

3 回答 3

2

如果其他人遇到这个看似奇怪的错误 - 请参阅https://stackoverflow.com/a/11696069以获取解决方案。

我有同样的症状,原因也是一样的——移动到新机器我采用了旧的捷径,只需将我需要的 mysql/data 目录中的数据库直接复制到新机器中,但是有些是较新的 InnoDb 类型. 这会导致 Create Table throws table doesn't exist 错误。我不得不删除数据库并重新创建它,然后从 sql 转储中导入。

于 2013-07-16T11:28:04.487 回答
0

根据 SQL 脚本,该表存在于另一个数据库中:

--

-- 数据库:ee_cmssite

-------------------------------------------------- --------

-- 表的表结构exp_actions

尝试改用ee_cmssite数据库。

于 2012-11-16T16:36:24.077 回答
0

虽然错误不清楚,但我认为这与USE文件开头的缺失有关。USE当您转储单个数据库时,mysqldump 不会添加语句。所以你应该添加:

USE `ee_cmssite`;
于 2013-04-24T01:01:39.183 回答