MySQL还原和备份

       据库的导入导操作相对某些人来说还是蛮频繁的,针对不同需要,有时候需要整个表做备份,有时候又可能要整个数据库做备份。mysql平时用得不多(公司用的oracle),这里把MySQL的数据备份和还原简单的做个介绍,免得以后自己都忘了。。。以下操作都是命令行下的,木办法,哥就希望命令行了。

    简单的mysql命令这里就不多做介绍了,以下就直切主题了。

一、备份(导出)数据库

三种形式的备份

1.导出整个数据库

比较适合做数据库迁移,操作起来也不复杂。

用法:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

mysqldump -u root -p test > test_bak.backup

备份成功!你可以以文本方式打开备份出来的文件,发现了木有,有木有?

2.导出一个表

用法:mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

mysqldump -u root -p wordpressDB > wordpressDB.wp_posts.backup

3.导出一个数据结构

数据结构是神马东东,呃,结构嘛,就是空有表的结构而没有表数据,从生产环境往测试环境同步数据的时候可能会用到,毕竟生产上的数据太大,测试环境估计放不下完整数据,所以先建好表再稍微插入点数据就够了,这个语句稍微复杂点,相关参数后面有介绍。

用法:mysqldump -uroot -p -d –add-drop-table 数据库名>导出文件名

mysqldump -u root -p -d --add-drop-table test > test.structure.backup

参数介绍

-d 表示没有数据

–add-drop-table 表示在每一个create语句之前添加一个drop table语句

二、还原(导入)数据库

1.source命令

用法:mysql -uroot –p

mysql>use 数据库名;

mysql>source 备份的数据库文件;

2.-D参数直接导入

mysql -uroot –D 数据库名< 备份的数据库文件

mysql-u root -p -D test < test_bak.backup;

三、数据的导入、导出

刚才说的都是数据库的导入导出,还有单纯的数据的导入导出方法

1.数据的导入

数据格式:字段数据之间用tab键隔开,null值用n来代替

比如说给student表添加一条记录,格式如下:

1    zhangsan    male    1986-11-24

保存为stu_data.data文件

用法:

load data infile "文件名" into table 表名;

或者load data infile "文件名" into table 数据库名.表名

mysql>use test;

mysql>load data infile "stu_data.data" into table test.student;

2.数据的导出

用法:mysql>select * from 数据库.数据表名 into outfile "文件名"

mysql>select * from test.t_student into outfile "stu_data.out"

 

注意:本文中涉及的文件操作都没有加上路径,所有的输入输出文件默认在当前目录下(嘻嘻,少敲点字母不是,不过这可不是个好习惯,大家千万不要学我哦)