Mysql数据库备份脚本
Posted 秋飘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql数据库备份脚本相关的知识,希望对你有一定的参考价值。
脚本示例:
@echo off set hour=%time:~0,2% if "%time:~0,1%"==" " set hour=0%time:~1,1% set now=%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%Time:~6,2% echo %now% set host=localhost set port=3306 set user=root set pass=root set dbname=scmweb set backupfile=D:\\backup\\0_dbbackup_day\\%dbname%-%now%.sql "D:\\mysql\\bin\\mysqldump" -h%host% -P%port% -u%user% -p%pass% -R -E --add-drop-table %dbname% > %backupfile% echo delete files before 10 days forfiles /p D:\\backup\\0_dbbackup_day /s /m *.sql /d -10 /c "cmd /c del @file /f"
二、备份方案:
参考:https://www.cnblogs.com/chevin/p/5683281.html
———————————————-库操作———————————————-
1.①导出一个库结构
②导出多个库结构
2.①导出一个库数据
②导出多个库数据
3.①导出一个库结构以及数据
②导出多个库结构以及数据
———————————————-表操作———————————————-
4.①导出一个表结构
②导出多个表结构
5.①导出一个表数据
②导出多个表数据
6.①导出一个表结构以及数据
②导出多个表结构以及数据
————————————–存储过程&函数操作————————————-
7.只导出存储过程和函数(不导出结构和数据,要同时导出结构的话,需要同时使用-d)
———————————————-事件操作———————————————-
8.只导出事件
—————————————–触发器操作——————————————–
9.不导出触发器(触发器是默认导出的–triggers,使用–skip-triggers屏蔽导出触发器)
————————————————————————————————
10.导入
————————————————————————————————
总结一下:
-t 数据(--no-create-info:只导出数据,而不添加CREATE TABLE 语句)
-n (--no-create-db:只导出数据,而不添加CREATE DATABASE 语句)
-R (--routines:导出存储过程以及自定义函数)
-E (--events:导出事件)
--triggers (默认导出触发器,使用--skip-triggers屏蔽导出)
-B (--databases:导出数据库列表,单个库时可省略)
--tables 表列表(单个表时可省略)
①同时导出结构以及数据时可同时省略-d和-t
②同时 不 导出结构和数据可使用-ntd
③只导出存储过程和函数可使用-R -ntd
④导出所有(结构&数据&存储过程&函数&事件&触发器)使用-R -E(相当于①,省略了-d -t;触发器默认导出)
⑤只导出结构&函数&事件&触发器使用 -R -E -d
PS:如果可以使用相关工具,比如官方的MySQL Workbench,则导入导出都是极为方便的,如下图。(当然为了安全性,一般情况下都是屏蔽对外操作权限,所以需要使用命令的情况更多些)
————————————————————————————————
下面为使用infile/outfile导入/导出txt/csv数据文件操作
10.①首先使用语句看一下可以导入/导出的路径在哪里
show variables like \'%secure%\';
表示导入/导出只能存放在E:/下面。
②如果不按照对应路径进行操作的话,将报如下错误:
Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
③如果还有权限问题,请修改my.ini将secure_file_priv设置到有权限的路径下
11.对csv/txt数据导入和导出
①导出csv数据
select *
into outfile \'E:/table1_data.csv\'
character set gb2312
fields terminated by \',\' optionally enclosed by \'"\' escaped by \'"\'
lines terminated by \'\\r\\n\'
from table1;
②导入csv数据
load data infile \'E:/table1_data.csv\'
into table table1 character set gb2312
fields terminated by \',\' optionally enclosed by \'"\' escaped by \'"\'
lines terminated by \'\\r\\n\';
③导出txt数据
默认使用空格作为分隔符,需要其它参数请参考上面的csv操作
select *
into outfile \'E:/table1_data.txt\'
from table1;
④导入txt数据
load data infile \'E:/table1_data.txt\'
into table table1;
三、在Windows下添加定时执行任务
参考:https://blog.csdn.net/m0_38025207/article/details/83302882
1. 任务计划程序中创建基本任务
2.输入基本任务名称
3.选择触发规则
4.选择触发时间及间隔
.
5.选择执行的操作
.
6.选择执行的备份脚本
以上是关于Mysql数据库备份脚本的主要内容,如果未能解决你的问题,请参考以下文章