假定我们的目标数据库是 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。

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

  1. Linux下MySQL数据库的备份与恢复

    Linux下MySQL数据库的备份与恢复 作者:Grey 原文地址: Github 语雀 博客园 基于版本 MySQL5.7 Deepin Linux 15.11 xtrabackup-2.4.18 ...

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

    #mysqldump --help 1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbn ...

  3. MySQL 数据库的备份与恢复

    一.MySQL 常见的备份方式 1. 直接拷贝数据库文件(物理拷贝) 2. 使用 mysqldump 工具备份 3. 使用 mysqlhotcopy 工具备份 4. 使用 mysql 的主从同步复制, ...

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

    1.数据库导出SQL脚本 启动MySQL服务器 输入:mysqldump -u root -p  数据库名>生成脚本文件路径 输入登录密码,回车键 例如: $ mysql.server star ...

  5. 中小型mysql数据库的备份与恢复

    #转载请联系 备份到桌面 cd /home/chichung/Desktop # 切换到桌面 mysqldump -u root -p db_jingdong>jd.sql # 重定向写入 jd ...

  6. mysql数据库数据备份与恢复

    备份数据: C:\Users\Administrator>mysqldump -uroot --password -v test01 test02 >e:\temp\\a3.sql Ent ...

  7. *CentOS下简单的MySQL数据库操作

    1.登录成功之后退出的话,直接输入quit或者exit即可.

  8. atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js

    atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐)  vs   lang  ...

  9. CentOS6.5下简单的MySQL数据库操作

    1.登录成功之后退出的话,直接输入quit或者exit即可.

随机推荐

  1. CF #374 (Div. 2) D. 贪心,优先队列或set

    1.CF #374 (Div. 2)   D. Maxim and Array 2.总结:按绝对值最小贪心下去即可 3.题意:对n个数进行+x或-x的k次操作,要使操作之后的n个数乘积最小. (1)优 ...

  2. Javascript实现页面加载完成后自动刷新一遍清除缓存文件

    我们有些时候在加载页面时,会出现缓存文件对当前文件的表现效果有干扰,如有些缓存的样式文件会是页面效果发生改变,这时我们希望页面在加载时能自动刷新一遍清楚缓存文件. 但是由于跳转页面肯定会用到BOM部分 ...

  3. python与正则表达式

    匹配一个字符: . 任意非\n字符 [...] \d \D digit \s \S space \w \W word 匹配前一个字符的多个: * 0->> + 1->> ? 0 ...

  4. EasyTouch绑定事件在电脑上点击有效Android上无效的解决方法

    最近做一个RPG类的游戏发现使用EasyTouch虚拟摇杆插件在电脑上点击有效Android上无效,查找资料发现是Easy Joystick中的一个属性interaction type要设置成 Dir ...

  5. USACO翻译:USACO 2014 MARCH GOLD P2 Sabotage

    1.破坏{DOLD题2} sabotage.pas/c/cpp [问题描述] 农夫约翰的头号敌人保罗决定破坏农民约翰的挤奶设备.挤奶设备排成一行,共N(3<= N <=100000)台挤奶 ...

  6. openwrt的配置

    1,参考:http://www.cnblogs.com/gnuhpc/archive/2013/08/31/3293643.html(此人的博客还是挺不错的) http://www.cnblogs.c ...

  7. 【转】c#处理3种json数据的实例

    http://www.jb51.net/article/48027.htm http://json2csharp.chahuo.com/ 网络中数据传输经常是xml或者json,现在做的一个项目之前调 ...

  8. 带你玩转JavaWeb开发之六-mysql基本语法详解及实例(3)

    [语法] update 表名 set 列名=列值,列名=列值 -[条件]; [注意事项] * 修改的列的值需要与列的类型一致. * 修改的列的值的长度不能超过列的类型的最大长度. * 字符串类型和日期 ...

  9. vert.x学习(五),用StaticHandler来处理静态文件

    做web开发,css.js.图片等静态资源是必不可少的,那么vert.x又是怎么来加载这些静态资源呢.请看StaticHandler 编写HelloStaticResource.java packag ...

  10. Spring整理

    Bean配置 1. <context:component-scan base-package="com.test" />这个包下的Spring注解才有效 属性文件自动解 ...