windows系统Mysql备份脚本

一.背景

        用的windows server 2019服务器,mysql8.0.34,还是应该每天备份一下。以前做了很多次,主要是带了2个徒弟,还是要写出来。

二.备份脚本

chcp 936
set date_tmp=%date:~0,10%
set datetime=%date_tmp:/=%%time:~0,2%%time:~3,2%%time:~6,2%
set executeback=mysqldump -uroot -proot   --default-character-set=utf8 --ignore-table=panguaxe.belt_weigher   --ignore-table=panguaxe.quality_data  panguaxe   --result-file=C:\SoftwareDownloads\dbbacks\%datetime%.sql
echo %executeback%
cmd /k %executeback%

三.相关知识及脚本说明

1.windows的dos下,获取当前日期字符串

   第一行:chcp 936

   是指定当前dos窗口使用gbk字符集。

   第二行和第三行:

   set date_tmp=%date:~0,10%
   set datetime=%date_tmp:/=%%time:~0,2%%time:~3,2%%time:~6,2%

   实现了取出年月日时分秒字符串,赋值给datetime这个变量。格式例如:20240112165412

2.windows的dos下,把一个字符串作为命令去执行

   第六行:cmd /k %executeback%

   就是把变量executeback对应的字符串值作为windows的dos命令去执行。

3.mysqldump导出时忽略表、指定导出文件、指定字符集解决乱码

  第四行:

set executeback=mysqldump -uroot -proot   --default-character-set=utf8 --ignore-table=panguaxe.belt_weigher   --ignore-table=panguaxe.quality_data  panguaxe   --result-file=C:\SoftwareDownloads\dbbacks\%datetime%.sql

拼凑了mysqldump导出命令的字符串。

其中,--ignore-table=数据库.表名1 就是写忽略哪个表不导出,可以写多个。

--result-file=xx.sql就是指定导出文件

--default-character-set=utf8 就是指定导出的字符集,解决乱码。根据实际情况,如果数据库是gbk就用gbk,看数据库具体是啥。看数据库字符集的命令可以用 SHOW CREATE DATABASE your_database_name;

ps:我在过程中还遇到了特殊问题,就是指定了字符集仍然是乱码。原因是我用的类似这样的命令来指定的导出文件。mysqldump -uroot -proot   --default-character-set=utf8 >xx.sql 

用>来指定文件是windows的命令,跟windos当前dos窗口的字符集有关,所以不管怎么指定字符集都会是乱码。所以要采用mysqldump的--result-file来指定文件就不会是乱码。

我测试过,如果指定数据库字符集是utf8,指定dos窗口的字符集也是utf8,不指定mysqldump的字符集,使用>符合指定导出文件,中文也不会乱码。当然mysql.ini我是指定了默认字符集为utf8的。测的如下:

chcp 65001
set date_tmp=%date:~3,10%
set datetime=%date_tmp:/=%%time:~0,2%%time:~3,2%%time:~6,2%
mysqldump -uroot -proot     --ignore-table=panguaxe.belt_weigher   --ignore-table=panguaxe.quality_data  panguaxe   >C:\SoftwareDownloads\dbbacks\%datetime%.sql

相关推荐

  1. windows系统Mysql备份脚本

    2024-01-13 09:12:03       42 阅读
  2. MySQL自动备份脚本

    2024-01-13 09:12:03       41 阅读
  3. xbackup 备份MySQL数据库脚本

    2024-01-13 09:12:03       19 阅读
  4. MySQL定时备份及清理脚本

    2024-01-13 09:12:03       29 阅读
  5. 使用脚本定时备份MySql数据库文件

    2024-01-13 09:12:03       33 阅读
  6. Linux系统日志每日备份脚本

    2024-01-13 09:12:03       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-13 09:12:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-13 09:12:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-13 09:12:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-13 09:12:03       20 阅读

热门阅读

  1. c++简单做一个文件变长储存(自己封装字符串类)

    2024-01-13 09:12:03       33 阅读
  2. TCP/IP Illustrated Episode 23

    2024-01-13 09:12:03       31 阅读
  3. 【FastDDS源码剖析】定时器

    2024-01-13 09:12:03       28 阅读
  4. 若依微服务中的上传文件的前后端实现

    2024-01-13 09:12:03       32 阅读
  5. Redis 持久化有几种方式?

    2024-01-13 09:12:03       35 阅读