尝试在node.js中导入转储时出现SQL错误1064

时间:2013-12-03 19:59:40

标签: mysql node.js phpmyadmin sequelize.js

我正在尝试使用node.js / Sequelize以编程方式将MySQL数据库的转储导入新的实例。我通过phpMyAdmin导出旧数据库并将其保存到文本文件中。

然后我正在做以下事情:

fs.readFile('./sql/dump.sql', 'utf-8', function(err, data){
    sequelize.query(data).success(function(data){
        done.resolve(data);
    }).fail(function(err){
        done.reject(err);
    });
});

在我的导入脚本中。这失败了:

[Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual
 that corresponds to your MySQL server version for the right syntax to use near
'CREATE DATABASE `db456668865` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_c
i' at line 13]
  code: 'ER_PARSE_ERROR',
  errno: 1064,
  sqlState: '42000',
  index: 0

这很奇怪,因为我从未触及SQL数据,并且期望phpMyAdmin生成有效的SQL(我也看不到提到的部分中的语法错误)。更奇怪的是,当我尝试通过数据库的phpMyAdmin接口导入SQL转储时,我试图将内容导入其中也完美地工作。是什么阻止我以编程方式执行此操作?

修改: 我像这样初始化sequelize

var sequelize = new Sequelize(dbConfig.db, dbConfig.user, dbConfig.pass, {
    host : dbConfig.host
    , port : dbConfig.port
});

我可以将该实例完美地用于任何其他操作。

0 个答案:

没有答案