gpt4 book ai didi

Mysql NodeJS 拒绝对重复数据库的声音查询

转载 作者:行者123 更新时间:2023-12-03 22:26:14 25 4
gpt4 key购买 nike

下面是对 CLONE a Database 的合理查询,如果在命令行中执行,每次都能完美运行。

Executing (default): mysqldump 
--column-statistics=0
-h ***.amazonaws.com
-u ***
-p*** MyDB1
--set-gtid-purged=OFF
|
mysql -h ***.amazonaws.com
-u ***
-p*** MyDB2

Node
  let DBname = req.body.DBname;
var sql = `mysqldump --column-statistics=0 -h ${config.global.host} -u ${config.global.user} -p${config.global.password} ${config.global.root_db_name} --set-gtid-purged=OFF | mysql -h ${config.global.host} -u ${config.global.user} -p${config.global.password} ${DBname} `
db.sequelize.query(sql)
.then( ()=> {
console.log(`${config.global.root_db_name} copied to-> ${DBname}`)
res.send('success')
}).catch( err=> {
console.log(`ERR: ${config.global.root_db_name} *FAILED* copied to-> ${DBname} ==> `+"\n\n" + err +"\n")
res.send('fail')
})

但是,当我将它嵌入到我的 NodeJS 程序中时,它会引发错误:

SequelizeDatabaseError: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法

有没有人以前处理过这个 - 欢迎所有建议,谢谢。

最佳答案

这个解决方案是上述 Andrew A 评论的结果。我没有执行 SQL 命令。

这是有效的

const shell = require('shelljs')

...

var dump = `mysqldump --column-statistics=0 -h ${config.global.host} -u ${config.global.user} -p${config.global.password} ${config.global.root_db_name} --set-gtid-purged=OFF | mysql -h ${config.global.host} -u ${config.global.user} -p${config.global.password} ${DBname} `

if (shell.exec(dump).code !== 0) {
console.log(`ERR: ${config.global.root_db_name} *FAILED* copied to-> ${DBname} `)
res.send('fail')
} else {
console.log(`${config.global.root_db_name} copied to-> ${DBname}`)
res.send('success')
}

关于Mysql NodeJS 拒绝对重复数据库的声音查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60078638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com