mysql数据库的备份与还原

Linux系统备份mysql数据库

手动备份

mysqldump -u root -p --all-databases > /path/to/backupfile.sql

自动备份

crontab -e
0 23 * * * mysqldump -h localhost -u root -pXXXXXXX dmp_XXXXX_db > /home/XXXX/XXXXX/bakmysql/dmp_XXXXX_db_$(date +%Y%m%d).bak
0 23 * * * mysqldump -h localhost -u root -pXXXXXXXX dmp_XXXXXXX_db > /home/XXXX/XXXX/bakmysql/dmp_XXXXXXX_db_$(date +%Y%m%d).bak

window系统备份数据库

手动操作

打开命令提示符窗口(Windows 上也称作命令行窗口)。
进入 MySQL 安装目录的 bin 目录,比如:

cd C:\Program Files\MySQL\MySQL Server 8.0\bin

使用 MySQL 客户端工具登录到 MySQL 服务器上。例如,登录名为 root,密码为 password:

mysql -u root -p password

创建要还原数据的数据库。
例如,创建名为 mydatabase 的数据库:

CREATE DATABASE mydatabase;

退出 MySQL 客户端工具:

exit;

手动还原操作

使用 MySQL 客户端工具还原备份文件。例如,将备份文件 mydatabase.bak 还原到 mydatabase 数据库中:

mysql -u root -p password mydatabase < D:\backup\mydatabase.bak

该命令将会将备份文件 mydatabase.bak 中的数据还原到 mydatabase 数据库中。

需要注意的是,在还原备份文件之前,需要先创建要还原数据的数据库。此外,在 Windows 系统上,备份文件的后缀名为 .bak,需要在还原命令中使用正确的文件名和路径。如果备份文件经过压缩,需要先解压缩到指定的文件路径再执行还原命令。

自动操作

@echo off  

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

D:/mysql-8.0.25-winx64/mysql-8.0.25-winx64/bin/mysqldump -hlocalhost -uroot -P3306 -p123456 -A > D:/mysql-8.0.25-winx64/bak/db_%Ymd%.bak

C:/Windows/System32/forfiles /p "D:\mysql-8.0.25-winx64\bak" /s /m *.bak /d -14 /c "cmd /c del @path"

@echo on  

这段代码是 Windows 批处理文件(.bat)的代码,用于备份 MySQL 数据库并删除 14 天前的备份文件。

该代码的主要功能包括:

使用 set 命令定义变量 Ymd,用于表示当前日期,格式为 YYYYMMDD。

使用 mysqldump 命令备份 MySQL 数据库,并将备份文件保存在指定的路径中。该命令会备份所有数据库,因为参数 -A 表示备份所有数据库。

使用 forfiles 命令删除指定路径下 14 天前的 .bak 文件。

此外,该代码中的备份方式是覆盖式备份,即每次备份都会覆盖之前的备份文件。如果需要保留历史备份,可以将备份文件名中加入日期或时间等信息。例如,将备份文件名改为 db_%Ymd%_%time:0,2%%time:3,2%%time:~6,2%.bak,可以在备份文件名中加入当前时间信息。

自动操作还原方法

C:\Users\lixia>D:/mysql-8.0.25-winx64/mysql-8.0.25-winx64/bin/mysql -hlocalhost -uroot -P3306 -p123456 db1 < D:/mysql-8.0.25-winx64/bak/db0510.bak
mysql: [Warning] Using a password on the command line interface can be insecure.

C:\Users\lixia>D:/mysql-8.0.25-winx64/mysql-8.0.25-winx64/bin/mysql -hlocalhost -uroot -P3306 -p123456 < D:/mysql-8.0.25-winx64/bak/db0510.bak
mysql: [Warning] Using a password on the command line interface can be insecure.

C:\Users\lixia>D:/mysql-8.0.25-winx64/mysql-8.0.25-winx64/bin/mysql -hlocalhost -uroot -P3306 -p123456 test22 < D:/mysql-8.0.25-winx64/bak/db0510.bak
mysql: [Warning] Using a password on the command line interface can be insecure.

C:\Users\lixia>D:/mysql-8.0.25-winx64/mysql-8.0.25-winx64/bin/mysql -hlocalhost -uroot -P3306 -p123456 < D:/mysql-8.0.25-winx64/bak/db0510.bak
mysql: [Warning] Using a password on the command line interface can be insecure.

C:\Users\lixia>D:/mysql-8.0.25-winx64/mysql-8.0.25-winx64/bin/mysql -hlocalhost -uroot -P3306 -p123456 db3 < D:/mysql-8.0.25-winx64/bak/db0510.bak
mysql: [Warning] Using a password on the command line interface can be insecure.

C:\Users\lixia>D:/mysql-8.0.25-winx64/mysql-8.0.25-winx64/bin/mysql -hlocalhost -uroot -P3306 -p123456 db2 < D:/mysql-8.0.25-winx64/bak/db0510.bak
mysql: [Warning] Using a password on the command line interface can be insecure.

-A 全量备份 只还原某个库

需要提前创建db1
–one-database db1

D:/mysql-8.0.25-winx64/mysql-8.0.25-winx64/bin/mysql -hlocalhost -uroot -P3306 -p123456 --one-database db1 < D:/mysql-8.0.25-winx64/bak/db0510.bak
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值