怎么备份数据库和电脑文件,电脑如何备份和恢复数据库

首页 > 实用技巧 > 作者:YD1662023-10-29 11:56:28

  前言

  通常情况下,我们需要改什么地方就备份什么地方就可以了,但也免不了需要整库备份的时候,本文记录实现MySQL使用脚本进行整库数据备份【表(结构 数据)、视图、函数、事件】

  主要是使用mysqldump.exe,mysqldump 是 mysql 用于转存储数据库的实用程序。它主要产生一个 SQL 脚本,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。

  为方便测试,使用java先造一下测试数据

package cn.huanzi.qch; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 造一批数据,方便进行测试 */ public class App { public static void main(String[] args) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); for (int i = 1; i <= 10; i ) { //当前时间-i天 Calendar c = Calendar.getInstance(); c.setTime(new Date()); c.add(Calendar.DATE, -1 * i); try { File fileToChange = new File("D:\\mysql_data_back\\jfinal_demo_" simpleDateFormat.format(c.getTime()) ".sql"); fileToChange.createNewFile(); //更改最后修改时间 fileToChange.setLastModified(c.getTime().getTime()); } catch (IOException e) { e.printStackTrace(); } } } }

怎么备份数据库和电脑文件,电脑如何备份和恢复数据库(1)

  bat脚本

:: MySQL整库数据备份脚本【表(结构 数据)、视图、函数、事件】,支持备份远程库 :: 注:bat解决中文乱码:改成使用ANSI格式 :: 注:MySQL服务器版本号、客户端版本要一致,否则会报错 @echo OFF echo 删掉之前的数据,只保留7天... :: 删掉之前的数据,按修改时间只保留7天(cmd使用set后forfiles失败,只能放在前面执行了) ::forfiles /p "D:\mysql_data_back" /s /m *.sql /d -7 /c "cmd /c echo @file" forfiles /p "D:\mysql_data_back" /s /m *.sql /d -7 /c "cmd /c del @path"; :: 年月日,路径 set ymd=?te:~,4%?te:~5,2%?te:~8,2% set path=D:\mysql_data_back :: 数据库地址、端口,数据库、账号、密码 set ip=127.0.0.1 set port=3306 set dbname=jfinal_demo set username=root set password=123456 echo 开始备份,文件生成路径:%path%... :: -h地址 -P端口 -u账号 -p密码 数据库 :: 常用命令: :: --no-create-db, -n/--no-create-info, -t 只导出数据,而不添加CREATE TABLE 语句 :: --no-data, -d 不导出任何数据,只导出数据库表结构 :: --routines, -R 导出存储过程以及自定义函数 :: --events, -E 导出事件 :: --force 在导出过程中忽略出现的SQL错误 D:\MySQL5.5\bin\mysqldump.exe -P%port% -h%ip% -u%username% -p"%password%" ?name% -R -E> %path%\?name%_%ymd%.sql echo %path%\?name%_%ymd%.sql,备份完成! :: 执行完不关闭窗口 pause

  使用forfiles命令,可以快速实现备份数据保留7天

  下面这个命令是筛选出7天之前的文件

怎么备份数据库和电脑文件,电脑如何备份和恢复数据库(2)

  shell脚本

#!/bin/bash # MySQL整库数据备份脚本【表(结构 数据)、视图、函数、事件】,支持备份远程库 # 注:bat解决中文乱码:改成使用ANSI格式 # 注:MySQL服务器版本号、客户端版本要一致,否则会报错 # 年月日,路径 export ymd=`date %Y%m%d` export path=/root/mysql/mysql_data_back # 数据库地址、端口,数据库、账号、密码 export ip='127.0.0.1' export port='3306' export dbname='test' export username='root' export password='123456' echo "删掉之前的数据,只保留7天..." # 删掉之前的数据,按修改时间只保留7天 find $path -type f -name "*.sql" -mtime 7 -exec rm -rf {} \; echo "开始备份,文件生成路径:$path..." # -h地址 -P端口 -u账号 -p密码 数据库 # 常用命令: # --no-create-db, -n/--no-create-info, -t 只导出数据,而不添加CREATE TABLE 语句 # --no-data, -d 不导出任何数据,只导出数据库表结构 # --routines, -R 导出存储过程以及自定义函数 # --events, -E 导出事件 # --force 在导出过程中忽略出现的SQL错误 /usr/bin/mysqldump -P$port -h$ip -u$username -p"$password" $dbname -R -E> $path/$dbname$ymd.sql echo "$path/$dbname$ymd.sql,备份完成!"

  首先把我们生成的测试文件上传到linux,并修改文件的修改日期,cd到对应文件夹,执行以下命令

touch -d "2021-08-21 03:41:10" test20210821.sql& touch -d "2021-08-22 03:41:10" test20210822.sql& touch -d "2021-08-23 03:41:10" test20210823.sql& touch -d "2021-08-24 03:41:10" test20210824.sql& touch -d "2021-08-25 03:41:10" test20210825.sql& touch -d "2021-08-26 03:41:10" test20210826.sql& touch -d "2021-08-27 03:41:10" test20210827.sql& touch -d "2021-08-28 03:41:10" test20210828.sql& touch -d "2021-08-29 03:41:10" test20210829.sql& touch -d "2021-08-30 03:41:10" test20210830.sql&

怎么备份数据库和电脑文件,电脑如何备份和恢复数据库(3)

  forfiles命令是window特有的,因此要改成find的方式查找文件

怎么备份数据库和电脑文件,电脑如何备份和恢复数据库(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.