使用npm mysql模块,在windows中查询源和路径问题

使用npm mysql模块,在windows中查询源和路径问题,mysql,node.js,Mysql,Node.js,我正在windows 7上使用npm mysql模块 connection.query(`source D:/mediapropel/wp_default_install.sql`, function (error, results, fields) { if(error) throw error; console.log("Database should be created1"); console.log('source '+ path.join(__dirname,

我正在windows 7上使用npm mysql模块

connection.query(`source D:/mediapropel/wp_default_install.sql`, function (error, results, fields) {
    if(error) throw error;
    console.log("Database should be created1");
    console.log('source '+ path.join(__dirname, '..', "\/\wp_default_install.sql")+'');
    res.send('');
});
我所尝试的:

'source D:/mediaprope/wp\u default\u install.sql'

'source'+path.join\uuu dirname,'..',\/\wp\u default\u install.sql+

source+D:/mediaprope/wp\u default\u install.sql

源D:/\mediaprople/\wp\u default\u install.sql

源D:/\mediaprople/\wp\u default\u install.sql/\/

错误消息:

'您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在第1行的“source D:/mediaprope/wp_default_install.sql”附近使用的正确语法`


正如预期的那样,相同的查询直接在mysql命令行中正确运行。请告诉我哪里出了问题。

如前所述,mysql模块不可能做到这一点。另外,如果您在DB管理UI中尝试使用相同的源SQL命令(如phpMyAdmin),则可以测试这一点。 我尝试在/bin/mysql可执行文件上使用child_process.exec,但由于某些原因失败。 下面是一个对我有效的黑客解决方案,您可以阅读并发送整个脚本以执行注意创建连接时的multipleStatements:true设置:

const fs = require('fs');
const {promisify} = require('util');
const mysql = require('mysql');
const connection = mysql.createConnection({
  host: '[host]',
  database: '[database]',
  user: '[user]',
  password: '[password]',
  multipleStatements: true
});
const connectionQueryPromise = promisify(connection.query.bind(connection));

const dbImportScript = fs.readFileSync(path.join(__dirname, '..', 'dump.sql'));
await connectionQueryPromise(dbImportScript);
若你们得到一个关于max_allowed_数据包的错误,请检查答案