mysqldump的用法

devtools/2025/3/31 4:01:11/

mysqldump 是 MySQL 提供的一个用于备份数据库的命令行工具,它可以将数据库中的数据和结构导出为 SQL 脚本文件,方便进行数据库恢复、迁移或存档。


基本语法

mysqldump [选项] 数据库名 > 备份文件.sql
  • 数据库:需要备份的具体数据库名称。
  • 备份文件.sql:保存备份数据的文件路径及名称。

常用选项

选项描述
-u 用户名指定连接数据库的用户名。
-p[密码]输入密码(可选)。如果直接跟在 -p 后不加空格,则会将密码明文显示在命令中(不推荐)。如果不加密码,系统会提示输入密码。
-h 主机名指定数据库所在的主机地址(默认为本地主机 localhost)。
--databases备份多个指定数据库,后面跟数据库名(如 --databases db1 db2)。
--all-databases备份所有数据库
--no-data只备份表结构,不备份数据。
--single-transaction对于支持事务的存储引擎(如 InnoDB),确保数据一致性备份。
--lock-tables在备份过程中锁定所有表,防止数据变动(适用于 MyISAM 引擎)。
--add-drop-table在每个 CREATE TABLE 前添加一条 DROP TABLE IF EXISTS 语句。
--routines导出存储过程和函数。
--events导出事件调度器中的任务。
--triggers导出触发器。

示例

1. 备份单个数据库
mysqldump -u 用户名 -p 数据库名 > 备份文件.sql

运行后会提示输入密码。

2. 备份多个数据库
mysqldump -u 用户名 -p --databases 数据库1 数据库2 > 备份文件.sql
3. 备份所有数据库
mysqldump -u 用户名 -p --all-databases > 全部备份.sql
如果需要排除部分数据库

可以通过 --ignore-database 选项来实现。以下是具体用法和示例:


基本语法

mysqldump -u 用户名 -p --all-databases --ignore-database=数据库1 --ignore-database=数据库2 > 备份文件.sql
  • --all-databases:表示备份所有数据库
  • --ignore-database=数据库:指定需要排除的数据库名称,可以多次使用该选项。

示例

1. 排除单个数据库

假设你需要备份所有数据库,但不想包含名为 test数据库

mysqldump -u 用户名 -p --all-databases --ignore-database=test > 全部备份.sql
2. 排除多个数据库

假设你需要排除 testperformance_schema 两个数据库

mysqldump -u 用户名 -p --all-databases --ignore-database=test --ignore-database=performance_schema > 全部备份.sql
3. 排除系统数据库

通常在备份时,我们可能不需要备份系统数据库(如 information_schemaperformance_schemamysql),可以这样写:

mysqldump -u 用户名 -p --all-databases \--ignore-database=information_schema \--ignore-database=performance_schema \--ignore-database=mysql > 全部备份.sql

注意事项

  1. 权限问题:确保执行 mysqldump 的用户有对目标数据库的访问权限。
  2. 数据库名称大小写敏感:MySQL 数据库名称在 Linux 系统上是大小写敏感的,请确保输入正确的名称。
  3. 排除的数据库仍会出现在输出中:即使使用了 --ignore-database,备份文件中可能会保留一些与被忽略数据库相关的元数据信息(如创建语句)。不过这些数据库的数据不会被导出。

4. 只备份表结构
mysqldump -u 用户名 -p --no-data 数据库名 > 表结构.sql
5. 使用事务一致性备份(适合 InnoDB)
mysqldump -u 用户名 -p --single-transaction 数据库名 > 备份文件.sql
6. 备份时压缩数据
mysqldump -u 用户名 -p 数据库名 | gzip > 备份文件.sql.gz


http://www.ppmy.cn/devtools/172003.html

相关文章

准确--配置服务器文件数

某些系统可能在 /etc/security/limits.d/ 目录下有额外配置覆盖全局设置。检查是否存在冲突文件: ls /etc/security/limits.d/如果有文件(如 90-nproc.conf 或 90-nofile.conf),需编辑或删除这些文件中的冲突配置。 确保系统启用…

vue3(笔记)5.0--pinia工具的知识扩展

pinia工具 defineStore(创建pinia) 作用:用于定义一个 Pinia store。 用法: 接收一个唯一的 ID 和一个配置对象,配置对象中可以定义 state、getters 和 actions。state 是一个函数,返回初始状态。getters 类似于 Vue 组件中的计…

Softmax 回归 + 损失函数 + 图片分类数据集

Softmax 回归 softmax 回归是机器学习另外一个非常经典且重要的模型,是一个分类问题。 下面先解释一下分类和回归的区别: 简单来说,分类问题从回归的单输出变成了多输出,输出的个数等于类别的个数。 实际上,对于分…

C++多线程编程简介

C多线程编程 概述 多线程编程允许在同一个程序中同时执行多个任务,从而提高程序的效率,特别是在处理 I/O 密集型或计算密集型任务时。C11 引入了标准库中的多线程支持,使得 C 开发者能够更加方便地进行多线程编程。 线程基础 线程是程序中…

STRUCTBERT:将语言结构融入预训练以提升深度语言理解

【摘要】最近,预训练语言模型BERT(及其经过稳健优化的版本RoBERTa)在自然语言理解(NLU)领域引起了广泛关注,并在情感分类、自然语言推理、语义文本相似度和问答等各种NLU任务中达到了最先进的准确率。受到E…

docker数据卷挂载,安全与优化隔离,docker Compose

一、bind mount数据卷的挂载(用主机的有内容文件挂载于容器空文件) 简单的挂载方式:docker run -it --rm --name test1 -v /lee:/data1:rw -v /etc/passwd:/data2/passwd busybox(-v表挂载,将主机的/lee目录挂载于容器…

【机器学习基础 4】 Pandas库

一、Pandas库简介 Pandas 是一个开源的 Python 数据分析库,主要用于数据清洗、处理、探索与分析。其核心数据结构是 Series(一维数据)和 DataFrame(二维表格数据),可以让我们高效地操作结构化数据。Pandas …

Maven工具学习使用(三)——坐标和依赖

坐标元素 Maven坐标是通过一些元素定义的,元素包括groupId、artifactId、version、packaging、classifier groupId:定义当前Maven项目隶属的实际项目。Maven项目和实际项目不是一对一的关系。一个实际的项目对应的Maven模块可能会有很多,比如SpringFramework。groupId不应…