note.js mysql_Node.js 能否在 mysql 操作里执行 source 语句?

我有一个 .sql 文件用来创建数据库,我手动在 mysql 命令行里执行 source sql文件 OK,但是在 Node.js 里就报错。Node.js 里连接 mysql 正常,其他查询也可以执行,但是这个 source 不行,我折腾不出来头绪。

database.sql

create database if not exists `note` default character set utf8mb4;

use `note`;

create table `users`(`id` int not null AUTO_INCREMENT, primary key(`id`), `uname` varchar(30) not null, `pwd` varchar(100) not null, `email` varchar(100) not null, `avatar` varchar(100) not null default "", `verify` char(6)) default charset = utf8mb4;

create table `notes`(`id` int not null AUTO_INCREMENT, primary key(`id`), `userid` int not null, `content` text not null, `tag` varchar(200), `time` varchar(14) not null) default charset = utf8mb4;

createDB.js

const path = require('path')

const MysqlPro = require('mysql-pro')

// const DBConfig = require('./DBConfig')

const DB = new MysqlPro({

mysql: {

host: 'localhost',

port: 3306,

database: 'mysql',

user: 'root',

password: 'root'

}

})

const fileName = path.resolve(__dirname, 'database.sql')

DB.query(`source ${fileName}`)

.then((res) => {

console.log(res)

})

.catch((error) => {

console.log(error)

})

当我用 node createDB.js 执行时,报错语法错误:

code: 'ER_PARSE_ERROR',

errno: 1064,

sqlMessage: '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 \'source D:\\document\\vue\\note\\koa2\\database.sql\' at line 1',

sqlState: '42000',

index: 0,

sql: 'source D:\\document\\vue\\note\\koa2\\database.sql'

我不知道怎么错了,而且最后这个 sql 语句 source D:\\document\\vue\\note\\koa2\\database.sql 我手动复制到 mysql 里可以正常执行, Node.js 里执行就报错了,求解 Orz

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值