数据库备份工具——mysqldump详解

yumo6661个月前 (03-29)技术文章19

mysqldump 是 MySQL 提供的一个备份工具,用于创建数据库的逻辑备份。备份生成的是 SQL 脚本文件,该文件包含重建数据库所需的 SQL 语句。以下是 mysqldump 的详细用法:

基本语法

mysqldump [options] dbname [tables]
  • options:各种选项,定义备份的行为。
  • dbname:要备份的数据库名。
  • tables:指定备份的表(可选)。

常用选项

  • -u:指定用户名。

-u username

  • -p:提示输入密码。

-p

  • -h:指定 MySQL 主机(默认为 localhost)。

-h hostname

  • -P:指定 MySQL 端口(默认为 3306)。

-P port

  • --all-databases:备份所有数据库。

--all-databases

  • --databases:备份指定数据库(包括创建数据库的 SQL 语句)。

--databases dbname1 dbname2

  • --tables:仅备份指定的表(与 --all-databases 配合使用时)。

--tables table1 table2

  • --single-transaction:使用事务备份(适用于 InnoDB 存储引擎,能够确保一致性)。

--single-transaction

  • --quick:逐行读取表,减少内存消耗。

--quick

  • --lock-tables:在备份期间锁定所有表(默认行为,适用于 MyISAM 存储引擎)。

--lock-tables

  • --no-data:仅备份数据库结构,不包括数据。

--no-data

  • --create-schema:在备份文件中包含 CREATE SCHEMA 语句。

--create-schema

示例

  • 备份单个数据库
mysqldump -u username -p dbname > backupfile.sql
  • 备份多个数据库
mysqldump -u username -p --databases dbname1 dbname2 > backupfile.sql
  • 备份所有数据库
mysqldump -u username -p --all-databases > backupfile.sql
  • 备份指定表
mysqldump -u username -p dbname table1 table2 > backupfile.sql
  • 备份数据结构
mysqldump -u username -p --no-data dbname > backupfile.sql
  • 使用事务备份
mysqldump -u username -p --single-transaction dbname > backupfile.sql
  • 压缩备份
mysqldump -u username -p dbname | gzip > backupfile.sql.gz

恢复数据库

将备份文件恢复到数据库中,可以使用 mysql 命令:

mysql -u username -p dbname < backupfile.sql

参考文档

要获取 mysqldump 的更多选项和详细信息,可以参考 MySQL 官方文档



相关文章

记一次mysql数据库数据自动备份(全量+增量备份)

1 全量备份描述:(1) 每日凌晨1点自动执行脚本进行数据备份并压缩,备份并压缩的数据保存到nas目录/mnt/nas/mysql_data_bak/,保留7天的备份数据(2) 保留7天备份的数据,第...

解放你的双手,ubuntu定时自动备份MySQL数据库,亲测有效

1、新建一个文件夹存放备份的数据文件,根据个人需要放在合适的位置mkdir /home/cms_mysqlbackup 2、创建脚本文件,我放在home文件夹了,命名为autobackup.shcd...

MySQL的备份与还原,非常规备份,全量备份,增量备份

一、测试数据库的创建 1:官方百万级别的测试数据库:官方测试数据库github网址:https://github.com/datacharmer/test_db下载到目录,解压即可,运行命令:mys...

MySQL数据库备份

前端监控:www.webfunny.cn ;只需要简单几步,就可以搭建一套属于自己的前端监控系统,快来试试吧。(github:webfunny_monitor)一、mysqldump 简介mysqld...

使用mysqldump+crontab实现Mysql定时备份

一直在用ubuntu16.04 server apt-get 安装环境,客户需求每天0点,12点进行一次数据库的备份。所以写了一个脚本配合crontab,定时执行。首先给mysql建个cnf文件,在脚...

mysql单表备份、单表复制

在 MySQL 中,可以通过以下步骤基于已有的表 t_device 创建一个新表 t_device_bk,并将 t_device 表的数据全复制到新表:方法一:使用 CREATE TABLE 和 IN...