Mysql5.7数据库备份-恢复-2020年记录

1·首先先创建个测试的数据库吧!

create DATABASE test_mysql; #创建新数据库
show databases; #查看有多少数据库
use test_mysql;  #使用此数据库
create table ceshi(id int,name char(100));
show tables; #查看有哪些数据表
insert into ceshi values('1','xiaoming');  #添加数据到数据表
select * from ceshi;  #查看这个表里的数据

2·手动备份

建个文件夹,
mysqldump -u (数据库用户名)-p (数据库密码)-B 数据库名 >  /tmp/mysqlbak/test_backup.sql(此为备份脚本文件)   #备份到某个位置
mysqldump -u (数据库用户名)-p (数据库密码) 数据库名 <  /tmp/mysqlbak/test_backup.sql(此为备份脚本文件)   #从某个位置恢复数据库
这个为手动备份,物理备份,数据量小比较方便,
带-B参数的备份和恢复:
加-B参数的好处: 加上-B参数后,导出的数据文件中已存在创建库和使用库的语句,不需要手动在原库是创建库的操作,在恢复过程中不需要手动建库,可以直接还原恢复。

3·自动备份,策略或 脚本

mysqldump -uroot -p --all-databases(👈这个表示为备份全部数据库,或你想备份的单个数据库的名字 --databases db1 db2 db4)--single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs > backup_sunday_1_PM.sql    # 二进制日志备份,在星期天下午1点进行备份
------------------------------------------------------------------------------------------------------------------------------------------------
脚本备份:
vim bak.sh
输入/粘贴以下内容:

第一种:不压缩
mysqldump -uroot -ppassword --all-databases > /home/backup/mysqlbak_$(date +%Y%m%d_%H%M%S).sql
第二种:压缩
mysqldump -uroot -ppassword --all-databases | gzip > /home/backup/mysqlbak_$(date +%Y%m%d_%H%M%S).sql.gz
注意:
把 username 替换为实际的用户名;把 password 替换为实际的密码;

crontab -e
然后
00 2 * * * /home/backup/bak.sh #把脚本加入定时守护进程

4·恢复备份

mysql < bak.sql  #可能需要你加 -u root -p  来实现 具体看上边的2部分
source bak.sql;  #此为mysql命令行中使用,可能需要带上你的文件路径 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容