mysql数据库的备份与恢复

假定我们的目标数据库是 test, 表是 user。
假定mysql的用户名和密码均为 root。

备份与恢复所用的程序分别是mysql软件包提供的 mysqldump 命令和 mysql 命令。思想很简单,就是通过mysqldump将数据库的内容导出为sql语句组成的文件,恢复的时候再将该sql文件丢给mysql去执行。

mysql的man手册中提到了三种方式:
           shell> mysqldump [options] db_name [tbl_name ...]
           shell> mysqldump [options] --databases db_name ...
           shell> mysqldump [options] --all-databases

第一种方式是备份特定数据库下的某些表,其中表的指定是可选的,若不指定表,则备份该数据库下的所有表。

第二种方式是备份某些数据库,应该至少指定一个数据库。

第三种方式是备份所有数据库。

[options] 是可选的,下文的命令中指定的 options 是这三种方式通用的,事实上 mysqldump命令 的 manual 中也没有针对这三种方式对选项进行区分。

/**备份**/
由于我们要备份指定数据库的指定表,所以我们使用第一种方式。

使用以下命令:
mysqldump -u root -proot --add-drop-table --add-locks --create-options --quick --skip-extended-insert test user

解释一下命令中各个 option 的意义:
-u root 指定用户名。
-proot 指定密码(-p和密码之间不能有空格, 也可以只使用-p 选项,密码在按回车之后再让用户输入)。
--add-drop-table 在恢复阶段,如果目标表存在,则先drop。在导出的sql文件中体现为:DROP TABLE IF EXISTS `user`;
--add-locks 在恢复阶段,向表中插入数据之前先对表进行lock,插入完数据再unlock。
--create-options 表示在创建表的语句中增加一些附加选项, 在导出的sql文件中体现为:ENGINE=InnoDB AUTO_INCREMENT=266 DEFAULT CHARSET=utf8;
--quick 取一行写一行,表中的内容很庞大的时候有用。若使用的是 --skip-quick 选项,则将表的内容全取回来之后再写。
--skip-extended-insert 每行数据使用一个insert语句。若使用 --extended-insert 选项,则将内容放到一个 insert 语句中。

命令执行之后,可以发现内容被输出到 stdout 中了,若要备份到文件,将内容重定向即可,使用下面的命令:
mysqldump -u root -proot --add-drop-table --add-locks --create-options --quick --skip-extended-insert test user > test.user.sql

mysqldump 命令也提供了选项来指定将内容输出到的文件,--result-file=file_name, -r file_name

所以也可以使用以下命令:
mysqldump -u root -proot --add-drop-table --add-locks --create-options --quick --skip-extended-insert --result-file=test.user.sql test user

或者,
mysqldump -u root -proot --add-drop-table --add-locks --create-options --quick --skip-extended-insert -r test.user.sql test user

/**恢复**/
使用下面的命令:
mysql -u root -proot test < test.user.sql

或者是进入 mysql 的交互模式,use test;
然后再 source test.user.sql;

更详细的内容需参考相应命令的manual。

时间: 2024-08-05 11:53:32

mysql数据库的备份与恢复的相关文章

MySQL数据库的备份与恢复的三种方法

MySQL数据库的备份与恢复的三种方法 1.利用mysqldump实现从逻辑角度完全备份mysql,配合二进制日志备份实现增量备份 2.利用lvs快照从物理角度实现几乎热备的完全备份,配合二进制日志备份实现增量备份 3.利用percona公司的xrabackup实现完全热备份与增量热备份 实验环境:RHEL5.8 ,SElinux关闭,MySQL是tar包初始化安装版本5.5.28 一.测试环境准备 1.1 mysql的安装就不说了,见http://laoguang.blog.51cto.com

MySQL创建用户以及授权、常用的sql语句、MySQL数据库的备份与恢复

MySQL创建用户以及授权 常用的sql语句 MySQL数据库的备份与恢复 对于大数据的备份请查阅资料 原文地址:http://blog.51cto.com/13515599/2090425

第四章:MySQL数据库的备份与恢复

目录 1. 备份数据的意义 2. 数据库备份... 1 2.1 备份单个数据库练习多种参数使用... 1 2.1 mysqldump的工作原理... 8 .3. 数据库备份实践... 9 3.1 备份多个库... 9 3.2 分库备份... 10 3.3 备份单表及分表备份... 11 3.4 备份多个表... 13 3.5 备份数据库表结构(不包含数据)... 13 3.6 备份表中数据... 14 3.7 小结... 15 3.8 刷新binlog的参数... 15 3.9 mysqldum

mysqldump使用方法(MySQL数据库的备份与恢复)

#mysqldump --help 1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbname.sql (2)导出数据库结构(不含数据) mysqldump -u username -p -d dbname > dbname.sql (3)导出数据库中的某张数据表(包含数据) mysqldump -u username -p dbname tablename > tablename.

innobackupex实现MySQL数据库的备份与恢复

Xtrabackup是由percona开发的一个开源软件,它是innodb热备工具ibbackup(收费的商业软件)的一个开源替代品.Xtrabackup由个部分组成:xtrabackup和innobackupex,其中xtrabackup工具用于备份innodb和 xtraDB引擎的表:而innobackupex工具用于备份myisam和innodb引擎的表,本文将介绍如何用innobackupex工具做全量和增量备份. 一.安装 在安装Xtrabackup之前已经安装了mysql数据库,选用

MySQL数据库的备份与恢复命令

1.数据库导出SQL脚本 启动MySQL服务器 输入:mysqldump -u root -p  数据库名>生成脚本文件路径 输入登录密码,回车键 例如: $ mysql.server start Starting MySQL . SUCCESS! $ mysqldump -u root -p mydb1>/Users/Shared/ab.sql Enter password: 注意:不要打分号,不需要登录mysql,直接在cmd下运行,生成的脚本文件中不包含create database语句

Mysql数据库完全备份与恢复

数据库备份的重要性 提高系统的高可用性和灾难可恢复性,在数据库系统崩溃时,没有数据备份就没法找到数据. 使用数据库备份还原数据库,是数据库崩溃时提供数据恢复最小代价的最优方案. 没有数据库就没有一切,数据库备份是一种防范灾难的强力手段. 1.完全物理备份 1.1使用tar打包文件夹备份 数据库压缩时会使用压缩率较大的xz格式压缩. rpm -q xz //检查xz软件包是否安装 yum -y install xz //安装xz软件包 1.2对数据库文件夹/usr/local/mysql/data

mysql 数据库的备份与恢复

备份: Linux命令: mysqldump -uroot -p 数据库名 > XX.sql 然后根据提示输入密码 恢复: Linux命令:mysql -uroot -p 数据库名 < XX.sql 1 进入数据库客户端创建新的数据库 mysql -uroot -p 密码  --> cteate table 数据库名 charset=utf8; 2 退出客户端,执行linux命令 mysql -uroot -p 数据库名 < XX.sql 3 根据提示输入数据库密码 执行恢复到新的

mysql数据库数据备份与恢复

备份数据: C:\Users\Administrator>mysqldump -uroot --password -v test01 test02 >e:\temp\20170507\a3.sql Enter password: **** -- Connecting to localhost... -- Retrieving table structure for table test02... -- Sending SELECT query... -- Retrieving rows...