MySQL-06 数据备份和恢复
学习目标
- 数据备份
- 数据恢复
- 数据库迁移
- 导入和导出
数据备份
系统意外崩溃或者服务器硬件损坏都有可能导致数据库丢失,因此生产环境中数据备份非常重要。
MySQLdump命令备份
该命令可以将数据库备份成一个文件文件,该文件包含了数据定义语句和数据操纵语句,可以执行重新创建数据库表并插入数据。
语法格式:
mysqldump -u User -h Host -pPassword DBname[TableName,[TableName...]] > [dump file.sql]
示例:备份myschool数据库
备份文本文件:
--
-- Dumping data for table `subject`
-- LOCK TABLES `subject` WRITE;
/*!40000 ALTER TABLE `subject` DISABLE KEYS */;
INSERT INTO `subject` VALUES (1,'数据库基础',1,20),(2,'Java逻辑基础',1,18),(3,'SQL基础',1,15),(4,'HTML',1,20),(5,'Control+Ajax',2,20),
(6,'项目管理',4,40),(7,'软件工程',3,28),(8,'算法与数据结构',2,15),(9,'C语言',1,25),(10,'邓小平理论',1,18),(11,'C#面向对象',2,16),
(12,'JavaWeb',3,40),(13,'数据挖掘',4,20),(14,'英语',1,10),(15,'JavaScript',1,15),(16,'软件分层架构',3,20);
/*!40000 ALTER TABLE `subject` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
其中:
--:表示注释内容。
/*!......*/:表示可执行注释,在MySQL中可执行,在其他数据库被当成注释。
40101:表示mysql版本,表明此语句只有在4.01.01版本或者更高版本的MySQL中才能执行。
示例:备份myschool.student表
warning:在命令行中输入密码是不安全的。忽略。
示例:备份多个数据库
备份多个数据库需要添加“--databases”参数,之后跟随多个数据库名字
如果要备份全部数据库,使用参数:--all-databases
mysqldump的选项
复制数据库目录
备份之前需要LOCK TABLES,然后对表执行FLUSH TABLES。也可以停止mysql服务进行备份。
缺点:1、InnoDB引擎表不支持;2、不同版本MySQL不支持。
MySQLhotcopy快速恢复
只能备份MyISAM引擎表。
示例:备份mysql到d:/目录下
mysqlhotcopy -u root -p123 myschool d:/db.sql
数据恢复
将备份的数据进行恢复。
使用MySQL命令恢复
mysql命令的语法格式
mysql -u user -pPassword [DBName] < backdbfilename.sql
如果backdbfilename.sql是mysqldump命令创建的包含数据库语句的文件,执行的时候不需要指定数据库名。
示例:恢复myschool数据库
注意:需要先手动创建myschool数据库并指定。
直接复制到数据库目录
执行前停止mysql服务,拷贝后重启mysql服务。
缺点:不支持InnoDB引擎表。
使用mysqlhotcopy快速恢复
将mysqlhotcopy导出的数据拷贝到mysql数据库文件目录下,重启mysql服务即可。Linux中需要指定数据库文件的所有者,使用chown命令。
如果恢复的数据库已经存在,需要使用DROP命令删除,再进行恢复。
数据库迁移
将数据从一个数据库系统移动到另一个数据库系统上。
相同版本MySQL数据迁移
主版本号相同的数据库迁移,本质是源数据库的备份和目标数据库的恢复过程。
(注意:复制数据库文件只适合于MyISAM类型数据库,不支持InnoDB类型数据库)
示例:将A主机上的MySQL数据库全部迁移到B主机上
mysqldump -h www.a.com -uUser -pPassword DBName | mysql -h www.b.com -uUser -pPassword
"|":管道连接符。
如果要全部迁移,使用--all-databases参数。
不同版本的迁移
建议导出SQL,在目标数据库上执行SQL。
表的导出和导入
数据表可以导出为sql、xml或者html文件,同时支持导入。
使用select导出表
语法格式
SELECT 字段 FROM 表名 WHERE 条件 INTO OUTFILE '文件路径' [选项]
注意实现:需要修改my.ini的“secure-file-priv=路径名”,MySQL只支持导出到指定目录。
使用MySQL命令导出文本文件
语法格式
mysql -uUser -pPassword --execute="SELECT 语句" DBName >FileName.txt
使用LOAD DATA INFILE导入文本文件
语法格式
LOAD DATA INFILE 'filename.txt' INTO TABLE TableName
使用MySQLimport命令导入文本文件
语法格式
mysqlimport -uUser -pPassword DBName fileName.txt
综合练习
需求说明
- 使用mysqldump导出myschool数据库
- 删除myschool数据
- 使用mysql命令恢复myschool数据库
MySQL-06 数据备份和恢复的更多相关文章
- 涂抹mysql笔记-数据备份和恢复
<>物理备份和逻辑备份<>联机备份和脱机备份<>本地备份和远程备份<>完整备份和增量备份<>完整恢复和增量恢复<>复制表相关文件 ...
- Mysql大数据备份及恢复
<p>[引自攀岩人生的博客]MySQL备份一般采取全库备份.日志备份;MySQL出现故障后可以使用全备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置或时间;mysql的二进制日 ...
- 从MySQL全库备份中恢复某个库和某张表【转】
从MySQL全库备份中恢复某个库和某张表 一.全库备份-A [root@mha2 backup]#mysqldump -uroot -p123456 --default-character-set=u ...
- MySQL的数据备份以及pymysql的使用
一.MySQL的数据备份 语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql #示例: #单库备份 mysqldump -uroot -p123 ...
- mysql数据库的备份和恢复
Mysql数据库的备份和恢复 1.备份单个数据库 mysql数据库自带了一个很好用的备份命令,就是mysqldump,它的基本使用如下: 语法:mysqldump –u <用户名> -p ...
- innobackupex不停库的数据备份并恢复到别的服务器上【转】
1.innobackupex原理: 备份原理 1).首先会开启一个后台检测进程,实时检测myql redo的变化,一旦发现redo中有新日志写入,立即将日志记入后台日志文件xtrabackup_log ...
- 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)
一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...
- Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁
Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...
- redis入门(15)redis的数据备份和恢复
redis入门(15)redis的数据备份和恢复
- Salesforce 数据备份和恢复小知识
数据备份的类型 在Salesforce中可以使用多种API进行数据备份,它们是: REST API SOAP API Buik API Metadata API 数据备份有三种选择: 完全备份(Ful ...
随机推荐
- mfc设置半透明对话框
BOOL CDialog7::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 ::SetWindowLong(GetSafe ...
- java try·····catch·····异常处理学习
异常处理(又称为错误处理)功能 用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件). try....catch....只是异常处理的一种常用方法 try{ //可能导致异常 ...
- JAVA基础--流程控制语句02
JAVA流程控制语句 一.程序流程 定义:只代码执行的先后顺序 种类 顺序流程:程序默认流程,按照书写顺序执行 选择流程:选择语句 判断语句 重复流程: 循环控制语句 二.选择流程控制语句 判断语句 ...
- 洛谷 - P2762 - 太空飞行计划问题 - 最小割
https://www.luogu.org/problemnew/solution/P2762 最小割对应的点,在最后一次更新中dinic的bfs会把他的dep重置掉.所以可以根据这个性质复原最小割. ...
- NOIp2017真题模拟赛 By cellur925
果然我还是最菜的==不接受反驳 (先考了day2喵喵喵) Day2 T1:奶酪 期望得分:100分 实际得分:100分 考察:并查集 思路:这题其实之前做过了==.思路还是比较清晰的,读入时预处理出可 ...
- CGI、ASP、PHP、JSP、 ASP.NET网站开发语言比较
一.主流网站开发语言的简介及优缺点. 现在主流的网站开发语言主要包括cgi.asp.php.asp.net.jsp等. HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持. (一) ...
- 线段树/树状数组 POJ 2182 Lost Cows
题目传送门 题意:n头牛,1~n的id给它们乱序编号,已知每头牛前面有多少头牛的编号是比它小的,求原来乱序的编号 分析:从后往前考虑,最后一头牛a[i] = 0,那么它的编号为第a[i] + 1编号: ...
- C3 Transitions, Transforms 以及 Animation总结
C3 Transitions, Transforms 以及 Animation总结 前言 昨天有人咨询我面试的注意事项, 突然就意识到自己这块非常差, 竟然没有任何的印象, 准备看着大神老师的博客, ...
- 第02课 操作系统及Linux 系统介绍
1.操作系统介绍 操作系统(Operating System,简称OS),是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. 操作系统的作用是管 ...
- Eclipse 运行内存不足情况
在debug或者run 时 在VM arguments 处添加 -Xms512m -Xmx512m