使用mysqldump、into outfile和load data进行数据库导入导出备份
2013-03-09 12:55
447 查看
遇到了大批量导入导出数据的时候真的比较麻烦,动则几G的数据,操作起来也是比较慢的,而且如果稍有不慎,还要重写处理,最简单的方法也是效率最低的方法就是使用PHP写导入导出数据程序,用Shell来跑PHP,可是大家一直忽略了mysqldump和mysql的intooutfile与loaddata,如果这几个命令使用灵活了,对于数据库导入导出以及备份是很方便的。下面简单讲解一下,高手飘过,因为对于数据库操作我也是小白。
如果要导出整个数据库或者某一个数据库的一个表,并且保持数据库中表的名字不变,再次导入到另外一个数据库的时候,可以使用mysqldump和source的方法。mysqldump的具体使用参数可以使用
1、mysqldump导出整个表的数据,包括建表信息,这也是最基础的用法
其中-u-p和mysql的参数是一样的,分别代表了用户名和密码,后面跟着是数据库名和表明,>之后的是要导出的路径。
上面的导出数据要导入数据库的时候可以进入mysql,然后使用下面的命令来实现
PS:这种方法是导出整个表数据,并且带着建表信息,假如导入的数据库有同名的表,会被替换
2、使用mysqldump导出固定条件的数据库
mysqldump有一个参数where可以设置导出固定条件的数据库,where有个简写就是w,前者使用方法是–where后者是-w
例如,我要导出名字为data0数据库table0中status为1的记录,可以使用下面的命令
mysqldump-uusername-ppassworddata0table0-wstatus=1>/home/db/db_bak2012
3、前两种方法导出的数据都有建表数据,如果导出的数据只是追加,那么使用mysqldump的两个参数–no-create-info和–no-create-db,也就是下面的例子:
如果要导出一个表中的部分字段或者部分符合条件的记录,需要用到了mysql的intooutfile和loaddatainfile。
例如下面的mysql命令是把select的mytable表中的数据导出到/home/db_bak2012文件。
假如要导入刚才备份的数据,可以使用loadfile方法,例如下面的mysql命令,把导出的数据导入了mytable_bak的表中:
这种方法的好处是,导出的数据可以自己规定格式,并且导出的是纯数据,不存在建表信息,你可以直接导入另外一个同数据库的不同表中,相对于mysqldump比较灵活机动。
使用mysqldump和source导入导出备份数据
如果要导出整个数据库或者某一个数据库的一个表,并且保持数据库中表的名字不变,再次导入到另外一个数据库的时候,可以使用mysqldump和source的方法。mysqldump的具体使用参数可以使用mysqldump
--help来查看,这里我简单说下我常用的几种参数。
1、mysqldump导出整个表的数据,包括建表信息,这也是最基础的用法
mysqldump-uusername-ppassworddatabasenametablename>/home/db/db_bak2012
其中-u-p和mysql的参数是一样的,分别代表了用户名和密码,后面跟着是数据库名和表明,>之后的是要导出的路径。
上面的导出数据要导入数据库的时候可以进入mysql,然后使用下面的命令来实现
source/home/db/db_bak2012
PS:这种方法是导出整个表数据,并且带着建表信息,假如导入的数据库有同名的表,会被替换
2、使用mysqldump导出固定条件的数据库
mysqldump有一个参数where可以设置导出固定条件的数据库,where有个简写就是w,前者使用方法是–where后者是-w
例如,我要导出名字为data0数据库table0中status为1的记录,可以使用下面的命令
mysqldump-uusername-ppassworddata0table0-wstatus=1>/home/db/db_bak2012
3、前两种方法导出的数据都有建表数据,如果导出的数据只是追加,那么使用mysqldump的两个参数–no-create-info和–no-create-db,也就是下面的例子:
mysqldump-uusername-ppassworddatabasenametablename--no-create-db--no-create-info>/home/db/db_bak2012
使用intooutfile和loaddatainfile导入导出备份数据
如果要导出一个表中的部分字段或者部分符合条件的记录,需要用到了mysql的intooutfile和loaddatainfile。例如下面的mysql命令是把select的mytable表中的数据导出到/home/db_bak2012文件。
select*frommytablewherestatus!=0andname!=''intooutfile'/home/db_bak2012'fieldsterminatedby'|'enclosedby'"'linesterminatedby'rn';
假如要导入刚才备份的数据,可以使用loadfile方法,例如下面的mysql命令,把导出的数据导入了mytable_bak的表中:
loaddatainfile'/home/db_bak2012'intotablemytable_bakfieldsterminatedby'|'enclosedby'"'linesterminatedby'rn';
这种方法的好处是,导出的数据可以自己规定格式,并且导出的是纯数据,不存在建表信息,你可以直接导入另外一个同数据库的不同表中,相对于mysqldump比较灵活机动。
相关文章推荐
- 使用mysqldump、into outfile和load data进行数据库导入导出备份
- MySQL数据的导出和导入工具:mysqldump(备份数据库的命令)
- aliyun采用MySQLdump进行数据库的导入导出
- 如何使用mysqldump命令导入导出数据库下的数据或表结构(远程or本地都适合)
- 使用导入导出进行备份和恢复OCR(10g)
- mysqldump对数据库进行备份导入
- 用MySQL的mysqldump工具对数据库进行导出和导入
- MySQL数据的导出和导入工具:mysqldump(备份数据库的命令)
- Ubuntu+Mysql之从格式化文件导入数据库——Load Data 命令使用及local-infile=1用法
- Java中使用Oracle的客户端 load data和sqlldr命令执行数据导入到数据库中
- Oracle 11g数据库使用pl/sql developer进行数据导入与导出
- mysql数据导入导出【mysqldump,source,outfile,load data infile】的比较
- Java中使用Oracle的客户端 load data和sqlldr命令执行数据导入到数据库中
- 使用mysqldump 对数据库进行备份的乱码问题
- mysqldump导入导出数据库总结;MySQLDump在使用之前一定要想到的事情
- MySQL中使用load data命令进行数据导入
- SQL:使用备份向导、SQL命令、导出数据三种方式对已建立的数据库进行备份
- MySQL数据的导出和导入工具:mysqldump(备份数据库的命令)
- liunx_10g_rac 使用导入,导出进行 ocr备份和恢复
- 使用mysqldump导出数据库的几种方式以及如何导入数据库