mysql中的数据备份与还原
Posted Java_xb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中的数据备份与还原相关的知识,希望对你有一定的参考价值。
一、有三种备份方式:
1. 数据表文件备份
2. 单表数据备份
3. SQL备份
4. 增量备份
二、mysql中的存储引擎
主要有两种:myisam 和 innodb. -- 免费的
其他收费的还有:BDB, Memory, Archive
innodb的存储方式:表结构单独存放,所有数据都存储在ibdata1文件中。
myisam的存储方式:表、数据和索引全部单独分开存储。
二、数据表文件备份与还原
直接复制数据库目录下的文件夹复制对应的表结构和数据文件,还原的时候直接放回去即可。
但是此方法根据不同的存储引擎有不同的区别:
innodb下,因为除了表结构外其他数据都在ibdata1文件中,所以还原到本来的数据库可以,跨数据库时表将不能使用。
myisam下,因为表、数据和索引全部单独分开存储,所以只需要复制这三个文件,就可以在任意数据库进行还原使用。
三、单表数据备份与还原
1. 数据备份
每次只能备份一张表,且只能备份数据,不能备份表结构。通常用于导出数据到文件。
select */字段列表 into outfile \'文件路径\' [fields 字段处理 lines 行处理] from 数据源; -- 文件不存在才能导出
fields字段处理:
enclosed by: 字段使用什么内容包裹,默认为\'\';
terminated by: 字段使用什么内容结束,默认为\'\\t\';
escaped by: 特殊符号用什么方式处理,默认\'\\\\\' 反斜杠转义;
lines行处理:
starting by: 每行以什么开始,默认为\'\';
terminated by: 每行以什么结束,默认为换行符;
示例:
1 select * into outfile \'D:\\BaiduNetdiskDownload\\mysql\\class.sql\' 2 fields terminated by \'---\' enclosed by \'"\' 3 lines starting by \'be:\' terminated by \'ed\\r\\n\' 4 from my_class;
2. 数据还原
必须保证表结构存在,才能进行数据还原。
lode data infile \'文件路径\' into table 表名 fields 字段处理 lines 行处理; -- 怎么备份的,就怎么还原
示例:
1 load data infile \'D:\\BaiduNetdiskDownload\\mysql\\class.sql\' into table my_class 2 fields terminated by \'---\' enclosed by \'"\' 3 lines starting by \'be:\' terminated by \'ed\\r\\n\';
三、 SQL备份
1.数据备份
备份的是SQL语句,需要使用mysql提供的mysqldump.exe软件。
mysqldump/mysqldump.exe -hPup 数据库名 [表名1[,表名2...]] > 外部文件路径 -- 可以多表备份, 如果不写表名,表示整库备份
mysqldump -uroot -p jdbc my_student > D:\\BaiduNetdiskDownload\\mysql\\student.sql -- 单表备份
mysqldump -uroot -p jdbc> D:\\BaiduNetdiskDownload\\mysql\\jdbc.sql -- 整库备份
2. 数据还原
① 使用mysql客户端还原:
mysql.ext/mysql -hPup 数据库名< 备份文件路径
mysql -uroot -p jdbc < D:\\BaiduNetdiskDownload\\mysql\\student.sql
②使用SQL指令还原:
source 备份文件路径;
source D:\\BaiduNetdiskDownload\\mysql\\student.sql;
四、增量备份
此方式针对mysql服务器的日志文件进行备份,可以指定时间段进行备份,因此备份数据不会重复,并且中间的操作过程也会备份。
以上是关于mysql中的数据备份与还原的主要内容,如果未能解决你的问题,请参考以下文章