杉哥的个人博客

mysql的数据的备份

数据备份与还原,具体如下

文本备份:

文本备份是最简单的,就是将数据表的相关文件复制一份就行了

注意:
文本备份一般认为只适合Myisam存储引擎创建的表!因为Myisam数据表的三种数据是分开存储的,而且表与表的数据也是单独存储的!

缺点:

每次都需要备份整个文件,非常浪费磁盘空间!

数据备份:

所谓的数据备份,就是只备份表的数据部分,不备份表结构,也就是说,如果整张表的数据被误删了(delete语句),还的可以还原的!(因为表的结构还在),但是,如果把整个表之间drop掉了,就无法还原了!因为表的结构已经没有了!

备份语法:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
select *|字段列表 into outfile 文件地址 from 表名;
select *|字段列表 into outfile 文件地址 from 表名;
select *|字段列表 into outfile 文件地址 from 表名;

还原语法:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
load data infile 文件地址 into table 表名[字段列表];
load data infile 文件地址 into table 表名[字段列表];
load data infile 文件地址 into table 表名[字段列表];

一个小技巧:

我们可以利用还原语法快速的将外面的数据导入数据表中!但是外部数据的格式首先要整理一下:数据项与数据项之间以制表符作为分隔符!

sql备份(推荐使用):

就是将表的结构和数据通过sql语句的形式进行备份!与数据备份最大的区别是:不仅仅备份数据表的数据部分,也备份数据表的结构部分,也就说,即使数据表被drop掉了,也能还原!

备份语法:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
mysqldump -h主机号 -P端口号 -u用户名 -p密码 数据库名[数据表1 数据表2 ……] > 存储路径
mysqldump -h主机号 -P端口号 -u用户名 -p密码 数据库名[数据表1 数据表2 ……] > 存储路径
mysqldump -h主机号 -P端口号 -u用户名 -p密码 数据库名[数据表1 数据表2 ……] > 存储路径

还原语法:

方法一:

使用mysql客户端进行还原
mysql -hPup 数据库名 < 备份路径

方法二:

使用sql命令
source 备份路径; — 注意这里的路径不能有引号