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。
mysql数据库的备份与恢复的更多相关文章
- Linux下MySQL数据库的备份与恢复
Linux下MySQL数据库的备份与恢复 作者:Grey 原文地址: Github 语雀 博客园 基于版本 MySQL5.7 Deepin Linux 15.11 xtrabackup-2.4.18 ...
- mysqldump使用方法(MySQL数据库的备份与恢复)
#mysqldump --help 1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbn ...
- MySQL 数据库的备份与恢复
一.MySQL 常见的备份方式 1. 直接拷贝数据库文件(物理拷贝) 2. 使用 mysqldump 工具备份 3. 使用 mysqlhotcopy 工具备份 4. 使用 mysql 的主从同步复制, ...
- MySQL数据库的备份与恢复命令
1.数据库导出SQL脚本 启动MySQL服务器 输入:mysqldump -u root -p 数据库名>生成脚本文件路径 输入登录密码,回车键 例如: $ mysql.server star ...
- 中小型mysql数据库的备份与恢复
#转载请联系 备份到桌面 cd /home/chichung/Desktop # 切换到桌面 mysqldump -u root -p db_jingdong>jd.sql # 重定向写入 jd ...
- mysql数据库数据备份与恢复
备份数据: C:\Users\Administrator>mysqldump -uroot --password -v test01 test02 >e:\temp\\a3.sql Ent ...
- *CentOS下简单的MySQL数据库操作
1.登录成功之后退出的话,直接输入quit或者exit即可.
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐) vs lang ...
- CentOS6.5下简单的MySQL数据库操作
1.登录成功之后退出的话,直接输入quit或者exit即可.
随机推荐
- osgAnimation例子的注释的注释
osgAnimation例子的注释的注释 转自:http://www.cnblogs.com/sunliming/archive/2011/12/12/2284995.html #include &l ...
- Ext之ExtGrid增删改查询回顾总结
学习Ext已经有些许时间了,发现实际运用过程中ExtGrid系列还是最为常用的,本来想自己写些话语来总结的,无意间看到有位仁兄早就总结了,故冒犯贴在此处,以便以后翻阅,还望见谅 Ext - Grid ...
- js快速排序
function sort(arr){ if(arr.length<=1){ return arr; } var num = Math.floor(arr.length/2); var numV ...
- Daily Scrum02 12.08
编译大作业的第一次检查终于过去了,已经经过这次检查的组员们可以暂时松一口气了. 也希望编译大作业有着落的成员可以多花一些时间在团队任务上,帮其他的组员多分担一些工作. 第一次没来的及检查的同学,或是没 ...
- Mysql 中的事件//定时任务
什么是事件 一组SQL集,用来执行定时任务,跟触发器很像,都是被动执行的,事件是因为时间到了触发执行,而触发器是因为某件事件(增删改)触发执行: 开启事件 查看是否开启: show variables ...
- 关于各种类型数据char、int、double、float 所占空间长度的计算,而char类型让我长姿势了
#include <iostream> int main() { using namespace std; //int A=10; //double B=6; cout << ...
- Python traceback【转】
1. Python中的异常栈跟踪 Python,在2.x中,异常对象可以是任何对象,异常对象和异常栈是分开的.python中用于处理异常栈的模块是traceback模块,它提供了print_excep ...
- Offline.js - 自动判断网络连接状态并提醒用户
http://www.cnblogs.com/lhb25/p/offline-js-alert-users-when-no-internet-connectivity.html 使用 jslint/j ...
- ccpcfinal总结
ccpcfinal拿了块铁回来了... 虽然一开始知道我们三个过去 应该就是铁了.. 然而之后训练了几场区域赛的题 感觉 还是有希望拿个铜的... 不过..当出发前听说一共有120个队之后..不过我觉 ...
- DS实验题 融合软泥怪-1
题目 思路 很容易想到第一种做法,用Huffman算法,从森林中找出两个值最小的节点,合并再加入森林,在这个过程中不断记录. 但是每一次需要sort一遍,将最小的两个值节点置于头两个节点,最坏情况下复 ...