如果我以root用户身份输入,以下SQL可以正常工作:
sudo mysql -u root -p
DROP DATABASE IF EXISTS bugtracker; CREATE DATABASE bugtracker; USE bugtracker;
字符串
但是如果我运行node.js代码,我会得到错误:
错误:您的SQL语法中有错误;请检查与您的MariaDB服务器版本对应的手册,以在第1行的“CREATE DATABASE bugtracker; USE bugtracker”附近使用正确的语法
1064年,
SQL:'DROP DATABASE IF EXISTS bugtracker; CREATE DATABASE bugtracker; USE bugtracker',
sqlState:'42000',
sql消息:“您的SQL语法中有错误;请检查与您的MariaDB服务器版本对应的手册,以了解在第1行的”CREATE DATABASE bugtracker; USE bugtracker“附近使用的正确语法”
我有2个节点文件,如下所示。我已经从mysql中删除了appUser,并重新添加了他,之后授予特权和刷新特权。
节点文件:mysql_funcs:
import mysql from "mysql2/promise";
export function CreatePool()
{
return new Promise(function(resolve, reject)
{
try
{
let pool = mysql.createPool({
host: '127.0.0.1',
user:'appUser',
password: 'Password123'
});
resolve(pool);
}
catch(err)
{
reject(err);
}
});
}
export function GetDBSQL(sql, pool)
{
return new Promise(function(resolve, reject)
{
try
{
let ret = pool.query(sql)
resolve(ret);
}
catch(err)
{
reject(err);
}
});
}
型
main.js:
import * as mysqlf from "../common/db/mysql_funcs.js"
mysqlf.CreatePool().then(
(pool) =>
{
const sqll="DROP DATABASE IF EXISTS bugtracker; CREATE DATABASE bugtracker; USE bugtracker;";
mysqlf.GetDBSQL(sqll, pool).then(
(ans) =>
{
console.log("DONE OK");
},
(err) =>
{
console.log(err);
}
)
});
型
1条答案
按热度按时间r7knjye21#
在您的情况下,可能更可取的迁移方法,例如使用knex js:
Create database in Knex migration