`
JohnShen0708
  • 浏览: 59433 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL数据库备份与恢复(1) -- mysqldump

 
阅读更多

mysqldump 客户端是由 Igor Romanenko 编写的数据库备份程序。可以用它将整个或部分数据库导出备份或直接导出到另外一个数据库中(不一定非得是 MySQL 数据库)。一般来说,生成的转储文件会包含创建表或插入数据的 SQL ,或者两者兼有。另外, mysqldump 还可以生成 CSV 文件,带分隔符的文本文件或者 XML 。

注: mysqldump 是一个备份程序,并不用作恢复。

 

(如果你所创建的表都是 MyISAM 类型,推荐使用 mysqlhotcopy 进行备份和恢复,速度会比 mysqldump 更快。)

 

使用 mysqldump 一般归为三种形式:

 

shell> mysqldump [ options ] db_name [ tbl_name ... ]
shell> mysqldump [ options ] --database db_name ...
shell> mysqldump [ options ] -all-databases

 

如果 db_name 后未接表名,或使用 --databases 或 --all-database 选项, 整个库会被转储( mysqldump 默认不会转储 INFORMATION_SCHEMA )。

 

options 都是可选参数,有很多,一般使用默认值即可。其中有两项: --user 和 --password 用来指定连接数据库的用户名和密码。一般用法如下:

 

shell> mysqldump --user=user_name --password[=password] db_name > backup-file.sql 

 

user_name 和 password 替换成具体的用户名和密码。注意,密码可不在命令行中提供,稍后 MySQL 会提示输入密码。所以也可写成这样:

 

shell> mysqldump --user=user_name --password db_name > backup-file.sql 

也可以将 --user 和 --password 替换成 -u 和 -p,用法如下:

 

shell> mysqldump -u<user_name> -p[<password>] db_name > backup-file.sql 

同样,将 <user_name> 和 <password> 用真实值替换。

 

 

在做数据库恢复时,使用 mysql 命令,用法如下:

 

shell> mysql -u<user_name> -p db_name < backup-file.sql

注意:此处使用的是 mysql 而不是 mysqldump,因为 mysqldump 是用来做导出的。

 

在导入时,有可能会出现如下错误:

 

ERROR 2006 (HY000) at line <line_num> : MySQL server has gone away

这是因为在导入数据时,往往会把一张表的数据写成一个很大的 insert 语句,导致此 insert 语句超过了缓冲区的大小。一般有两个办法来解决这个问题:(1)把一个大的 SQL 语句拆成几个小的, 网上有这样的工具,如 SplitInsert;(2)加大缓冲区的容量,进入 MySQL 的安装目录,打开 my.ini ,增加或修改以下配置项:

 

max_allowed_packet=20M

值的大小取决于数据的多少,修改后需要重启数据库。

 

 

小技巧:

 

生成 backup-file.sql 后可手动在文件的最前处加入:

 

SET AUTOCOMMIT=0;
SET FOREIGH_KEY_CHECKS=0;

在文件的最后位置加入:

 

SET FOREIGN_KEY_CHECKS=1;
COMMIT;
SET AUTOCOMMIT=1;

这样在执行导入时速度会快非常多。

 

如果在 linux 上可以更加简便:

 

shell> echo 'SET AUTOCOMMIT=0;
SET FOREIGN_KEY_CHECKS=0;
' > pre.sql

shell> echo 'SET FOREIGN_KEY_CHECKS=1;
COMMIT;
SET AUTOCOMMIT=1;
' > post.sql

shell> cat pre.sql backup-file.sql post.sql | mysql --user=user_name --password db_name
分享到:
评论

相关推荐

    MySQL数据库备份和恢复

    ### MySQL数据库备份与恢复:深度解析与实践指南 在当今数据驱动的世界中,数据库的稳定性和数据的安全性显得尤为重要。MySQL作为全球最流行的开源关系型数据库管理系统之一,其备份和恢复策略是确保数据安全和系统...

    Mysql数据库备份恢复测试报告-mysqldump.docx

    通过这次测试,我们验证了MySQL数据库备份的有效性和恢复过程的可行性,这为数据库管理和灾难恢复提供了重要的参考。对于任何数据库系统,制定并执行可靠的备份计划都是保障业务连续性和数据完整性不可或缺的部分。

    mysql数据库备份还原实战操作步骤-mysqldump备份还原

    在本文中,我们将介绍 MySQL 数据库备份还原实战操作步骤,包括使用 mysqldump 工具进行备份和恢复数据库的详细指令。 一、备份数据库 mysqldump 是 MySQL 提供的一种备份工具,使用 mysqldump 可以将 MySQL ...

    Mysql数据库备份(一)-数据库备份和表备份.docx

    本篇文章将详细介绍 Mysql 数据库备份的方法和步骤,从基础的 mysqldump 命令到备份多个数据库和所有数据库的操作,还有直接复制整个数据库项目和使用 mysqlhotcopy 工具快速备份的方法。 一、Mysql 中的数据备份 ...

    实验4 数据库备份与恢复实验 (2).docx

    实验4 数据库备份与恢复实验 数据库备份与恢复是数据库管理系统中非常重要的一部分。实验4 数据库备份与恢复实验旨在让学生掌握数据库备份与恢复的操作方法。 知识点1: 数据库备份 数据库备份是指将数据库中的...

    mysql数据库备份与恢复

    本知识点将深入探讨如何在SpringBoot环境下对MySQL数据库进行备份与恢复,以确保数据的安全。 首先,`MysqlBackup.java` 文件很可能是实现备份和恢复功能的核心Java类。在SpringBoot中,我们可以利用JDBC(Java ...

    实验4 数据库备份与恢复实验.pdf

    以上知识点详细阐述了MySQL数据库备份与恢复的基本操作、使用工具、以及各操作步骤。这些知识点对于数据库管理、维护和数据安全具有重要意义。通过本次实验,学生可以熟练掌握数据库的备份与恢复技能,了解不同备份...

    docker + mysql数据库备份脚本.pdf

    "Docker + MySQL 数据库备份脚本" 本文档提供了一份使用 Docker 容器备份 MySQL 数据库的 Bash 脚本。...该脚本使用了 MySQL 命令行工具 mysqldump 将数据库备份到文件中,并设置了一些环境变量和备份文件的存放地址。

    delphi备份和还原MySql数据库.zip

    在描述中提到的"delphi备份和还原MySql数据库.zip"源码,就是一个具体的实例,演示了如何在Delphi中实现对MySQL数据库的备份与恢复功能。 首先,我们需要理解备份和还原的基本概念。数据库备份是将数据库中的所有...

    mysql数据库备份和恢复工具

    本文将深入探讨MySQL数据库的备份与恢复策略,并提供相关工具的使用指南。 一、MySQL备份的重要性 数据库备份是防止数据丢失的关键步骤。无论是系统故障、硬件损坏、恶意攻击还是人为错误,都有可能导致数据丢失。...

    实验报告六 MYSQL备份与恢复.docx

    ### 二、数据库备份与恢复 #### 1. 全量备份 - **命令格式**: - `mysqldump -u root -p --all-databases &gt; all.sql`: 备份所有数据库。 - `mysqldump -u root -p database_name &gt; database.sql`: 备份指定数据库...

    mysql数据库备份与还原

    ### MySQL数据库备份与还原知识点详解 #### 一、MySQL数据库备份的重要性 在现代数据库管理中,备份是一项至关重要的任务。它不仅可以帮助我们防止因意外事件(如硬件故障、人为错误或恶意攻击)而导致的数据丢失...

    MySQL数据库备份与恢复

    ### MySQL数据库备份与恢复 #### 引言 随着信息技术的快速发展,数据库已成为现代信息系统的核心组成部分。其中,MySQL作为全球最流行的开源关系型数据库管理系统之一,因其高性能、稳定性以及丰富的功能特性,...

    mysql数据备份和还原的常用命令

    MySQL 数据备份和还原是数据库管理中非常重要的一步,能够防止数据丢失和恢复数据库。下面将介绍 MySQL 数据备份和还原的常用命令。 MySQL 数据备份命令 1. 备份 MySQL 数据库的命令 mysqldump -hhostname -...

    windows_下_自动备份mysql数据库--按时间命名备份文件.doc

    - 数据库备份目的地:`C:\db_bak\` **2. 实现步骤** - 创建 `db_bak.bat` 文件,并写入以下脚本: ```batch @echo off net stop mysql xcopy c:\mysql\data\bbs\*.* c:\db_bak\bbs\%date:~0,10% /S /I ...

    mysql数据库备份和恢复[定义].pdf

    MySQL 数据库备份和恢复是数据库管理中非常重要的一步,通过备份和恢复,可以确保数据的安全和可靠性。本文将详细介绍 MySQL 数据库备份和恢复的方法和步骤。 一、 MySQL 数据库备份 MySQL 数据库备份是将数据库中...

    mysql数据库备份和恢复

    本篇文章将深入探讨MySQL数据库的备份与恢复策略,以及如何使用`mysqldump`和`mysql`命令来执行这些操作。 首先,让我们了解为什么数据库备份是必要的。在日常运营中,数据库可能会遭受硬件故障、软件错误、恶意...

    MySQL数据库备份与恢复详解天盾数据恢复中心PPT学习教案.pptx

    MySQL数据库备份与恢复详解 MySQL数据库备份是指将MySQL数据库中的数据、配置文件、代码、操作系统相关的配置文件、复制相关的配置、二进制日志等备份的一种操作。备份的主要目的是灾难恢复,也就是在数据库数据...

    windows 下 自动备份mysql数据库--按时间命名备份文件.docx

    **描述**: 使用 `mysqldump` 命令来创建 SQL 文件,以便实现 MySQL 数据库的备份。 **详细说明**: 1. **创建备份脚本**: 编写一个批处理脚本 (`backup_db.bat`) 来执行备份操作。示例脚本如下: ```batch @echo...

    mysql数据库备份还原类.rar

    本压缩包"mysql数据库备份还原类.rar"提供了两个PHP类文件,dbback.class.php和upfile.class.php,它们可能用于实现MySQL数据库的自动备份和恢复功能。 1. **数据库备份**: - 备份原理:通常,MySQL数据库的备份...

Global site tag (gtag.js) - Google Analytics