Mysql使用命令行备份数据

前言

由于长期使用测试环境的数据库,时不时会有脏数据删除不干净,对此很需要一个实时将生产库的数据定期备份一份,防止生产库中会有脏数据进来。

1. 基本知识

mysqldump 是MySQL数据库管理系统提供的命令行工具,用于备份数据库

mysqldump -u [username] -p[password] [database_name] > /path/to/backup.sql

具体的参数说明:

  • -u: 指定MySQL用户名
  • -p[password]: 指定MySQL密码,注意 -p 之后没有空格,直接跟密码(如果是window系统,直接使用英文的双引号,囊括密码)
  • [database_name]: 要备份的数据库名
  • > /path/to/backup.sql: 将备份数据输出到指定的 SQL 文件

对于该命令通过运行 mysqldump --help 来查看所有可用的选项和参数。
了解这些参数有助于根据你的需求进行定制化的备份操作

2. 常用参数

下面主要讲解常用的命令参数:(如果携带密码在界面中会不安全,此处也可隐藏不写!)

  1. 备份整个数据库:(参数-A 或者 不加)
mysqldump -u [username] -p[password] [database_name] > backup.sql

截图如下:
在这里插入图片描述

或者如下:

在这里插入图片描述


  1. 仅备份数据库结构(不包含数据):(参数-d 或者 --no-data
mysqldump -u [username] -p[password] --no-data [database_name] > structure_backup.sql

截图如下:

在这里插入图片描述


  1. 仅备份数据(不包含结构):(参数-t 或者 --no-create-info
mysqldump -u [username] -p[password] --no-create-info [database_name] > data_backup.sql

截图如下:

在这里插入图片描述


  1. 指定备份的表:
mysqldump -u [username] -p[password] [database_name] table1 table2 > tables_backup.sql

截图如下:

在这里插入图片描述


  1. 备份时包含 CREATE DATABASE 语句:

其中涉及的数据库一定是存在的

mysqldump -u [username] -p[password] --databases [database_name] > backup_with_create.sql

截图如下:

在这里插入图片描述


  1. 备份多个数据库:
mysqldump -u [username] -p[password] --databases db1 db2 > multi_db_backup.sql

截图如下:

在这里插入图片描述


  1. 备份时添加注释:
mysqldump -u [username] -p[password] --databases [database_name] --add-drop-database --comments > backup_with_comments.sql

--add-drop-database: 在创建数据库之前添加 DROP DATABASE IF EXISTS 语句
--comments: 在备份文件中添加注释

截图如下:

在这里插入图片描述

  1. 指定字符集:
mysqldump -u [username] -p[password] --databases [database_name] --default-character-set=utf8 > backup_utf8.sql

--default-character-set: 指定备份文件的字符集

截图如下:

在这里插入图片描述

3. 拓展

对于其他数据库的备份,大致的方向差不多

一、PostgreSQL:

使用 pg_dump 命令进行备份,同样可以结合 cron 进行定时执行。

# 这里的 [username] 和 [database_name] 分别替换为你的PostgreSQL用户名和数据库名。
0 0 * * * pg_dump -U [username] -d [database_name] > /path/to/backup.sql

二、SQL Server:

使用 SQL Server Management Studio (SSMS) 提供的工具或者 SQL Server Agent 来进行定时备份,可以设置备份作业并指定定时执行的计划。

三、Oracle:

使用 expexpdp 命令进行备份,同样可以结合计划任务进行定时执行。

凌晨执行备份:

#这里的 [username]、[password]、[hostname]、[port]、[service_name] 分别替换为你的Oracle用户名、密码、主机名、端口和服务
0 0 * * * expdp [username]/[password]@//[hostname]:[port]/[service_name] dumpfile=/path/to/backup.dmp
  • 44
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值