mysql对其备份提供了一个很好用的工具mysqldump
工具。
这个工具可以直接在命令行用,不可以在他的mysql命令行中用。他是一个单独的工具。
备份数据表结构和数据
结构备份成建表语句,数据备份成插入语句,以后如果在某个地方想要使用,直接运行SQL就可以了。
导出整个数据库
mysqldump -u用户名 -p 数据库名 > 路径/导出的文件名
例:导出整个test数据库 mysqldump -uroot -p test > test.sql
在服务器中执行,不必登录mysql
导出一个表
mysqldump -u用户名 -p 数据库名 表名> 路径/导出的文件名
例:导出test数据库中的users表mysqldump -uroot -p test users > users.sql
注意:mysqldump是MySQL提供的一个备份工具。不必登录MySQL命令行。
只备份数据
不备份数据的表结构。只是备份数据
备份单表数据
mysql>select * / 字段 into outfile ‘文件名及位置’ fields 字段处理 lines 行处理 from 数据源;
例:
select * into outfile 'd:/1.txt' fields enclosed by '"' lines starting by '---' from student;
注:这个必须在mysql命令行进行。
fields处理:
-
enclosed by : 字段使用什么包裹 ,默认的是空字符串。
-
terminated by: 字段按照什么结束 ,默认是\t,制表符
-
escaped by : 特殊字符的出,默认的是使用’\’ 表示使用反斜杠转义。
lines 处理:
-
starting by:以什么开始每行数据 ,默认的是空字符串。
-
terminated by: 以什么结束,默认的是使用\r\n; 回车换行字符。
增量备份
不是针对表结构的,也不是针对表数据的。他是针对整个数据某一个事件段的日志文件。
增量备份会将整个数据库某一个事件段的所有操作都记录下来。
增量备份广泛的应用于实际的项目中。
还原
SQL备份的时候不会备份数据库的名字。那么还原的时候是无法还原数据的名字的,需要提前建立好一个空的数据库。然后在这个数据库中运行SQL文件。
MySQL命令直接还原
mysql -uroot -p 数据库名 < 路径/要导入的文件
例:导入当前目录下的test.sql文件mysql -uroot -p test < test.sql
使用source 命令还原
mysql>source 路径/要导入的文件
例:导入当前目录下的test.sql文件mysql>source test.sql;