mysqldump命令,自动备份数据库

14 篇文章 1 订阅

参考:https://www.jianshu.com/p/c3d8366326c1

常用mysql备份指令

# 导出所有数据库,该命令会导出包括系统数据库在内的所有数据库
mysqldump -uroot -proot --all-databases >/tmp/all.sql


# 导出db1、db2两个数据库的所有数据
mysqldump -uroot -proot --databases db1 db2 >/tmp/db1_and_db2.sql

# 导出db1下的某些表数据
mysqldump -uroot -proot --databases db1 --tables t_tab1 t_tab2 >/tmp/db1_and_tab.sql

# 备份docker mysql容器内的数据库数据到宿主机
docker exec -t mysql-container mysqldump -uroot -pxxx --all-databases >"mysql-backup/`date +%Y%m%d_%H_%M`.sql"

根据where条件导出数据
如果mysqldump 指令报错,请执行全路径指向mysqldump 目录,如window下执行命令:

# 全指令参考,在cmd中执行:
# --no-create-info 不创建表结构
# 注意,不要再语句后面加分号";"
# --where 添加导出条件
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe" -u"user1" -p"123" --host=127.0.0.1 --port=3306 --no-create-info --databases db1 --tables t_user --where="userid!='0001'" >"C:\Users\archives\Desktop\test.sql"

自动备份脚本参考

#!/bin/sh

##mysql-mm-wiki
#备份数据库
#docker exec -t mysql-container mysqldump -uroot -pxxx --all-databases >"mysql-backup/`date +%Y%m%d_%H_%M`.sql"
mysqldump -uroot -proot --databases db1 db2 >/tmp/db1_and_db2.sql
#清理10天前的文件
find /tmp/ -mtime +10 -name "*.sql" -exec rm -rf {} \;

-mtime:
-mtime +1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件,这里-mtime +1 为什么是48小时以外,而不是24小时以外呢,因为n只能是整数,比1大的下一个整数是2,所以是48小时以外的。

-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。

-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。

-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值