当前位置: 首页>后端>正文

node 定期备份mysql

首先,mysql的相关语句

备份mysql 需要调用mysql的 mysqldump 方法

语法是这样

mysqldump -u root -P 3306 abaijun > F:/data/mysql.sql

* -u是用户名 
-p (小写的时候需要在额外输入一次密码) 
-P (大写的之后可以直接带着密码,方便一条语句直接备份) 
端口:-p后边要写上mysql的端口
数据库名:接着是要备份的数据库名
输出名字: 这里加上个箭头 >  然后写上输出的路径和文件名既可

此外,还有一些其他的详细参数

-B 指定多个库,会加上建库语句和 use 选库语句
--compact 去掉注释 适合输出生产
-A 备份多个库和表
-F 刷新二进制日志等同于 --fush-logs
-l 只读锁表
-d 只备份表结构
-t 只备份数据
--where 在导出数据的时候添加条件

由于这是个doc命令,所以要在node里边执行需要借助插件

child_process插件

npm install child-process -S

// 这里主要用child-process 的exec 方法,execSync 是同步的执行方法
const { execSync,exec } = require('child_process')
let tDate = new Date()
// 如果你没有吧mysqldump的路径加入到window的path里,那需要配置第二个参数 cwd ,在mysql/bin的文件夹里才可以正常执行
exec('mysqldump -u root -P 3306 abaijun > '+mysqlSave + tDate.getFullYear() + (tDate.getMonth() +1)+ tDate.getDate()+'.sql',{cwd: mysqlDir},(err, stdout, stderr) => {
    if (err) {
        console.log(err)
        return
    }
})

https://www.xamrdz.com/backend/3qk1935358.html

相关文章: