博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql数据导入导出
阅读量:4106 次
发布时间:2019-05-25

本文共 1673 字,大约阅读时间需要 5 分钟。

遇到了大批量导入导出数据的时候真的比较麻烦,动则几G的数据,操作起来也是比较慢的,而且如果稍有不慎,还要重写处理,最简单的方法也是效率最低 的方法就是使用PHP写导入导出数据程序,用Shell来跑PHP,可是大家一直忽略了mysqldump和mysql的into outfile与load data,如果这几个命令使用灵活了,对于数据库导入导出以及备份是很方便的。下面简单讲解一下,高手飘过,因为对于数据库操作我也是小白。

使用mysqldump 和 source导入导出备份数据

如果要导出整个数据库 或者某一个数据库的一个表,并且保持数据库中表的名字不变,再次导入到另外一个数据库的时候,可以使用mysqldump和source的方法。 mysqldump的具体使用参数可以使用mysqldump --help来查看,这里我简单说下我常用的几种参数。

1、mysqldump导出整个表的数据,包括建表信息,这也是最基础的用法

mysqldump -uusername -ppassword databasename tablename > /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 -ppassword data0 table0 -wstatus=1 > /home/db/db_bak2012

3、前两种方法导出的数据都有建表数据,如果导出的数据只是追加,那么使用mysqldump的两个参数–no-create-info和–no-create-db,也就是下面的例子:

 

mysqldump -uusername -ppassword databasename tablename --no-create-db --no-create-info > /home/db/db_bak2012

使用into outfile 和 load data infile导入导出备份数据

如果要导出一个表中的部分字段或者部分符合条件的记录,需要用到了mysql的into outfile 和 load data infile。

例如下面的mysql命令是把select的mytable表中的数据导出到/home/db_bak2012文件。

 

select * from mytable where status!=0 and name!='' into outfile '/home/db_bak2012' fields terminated by '|' enclosed by '"' lines terminated by '\r\n' ;

假如要导入刚才备份的数据,可以使用load file方法,例如下面的mysql命令,把导出的数据导入了mytable_bak的表中:

 

load data infile  '/home/db_bak2012' into table mytable_bak fields terminated by '|' enclosed by '"' lines terminated by '\r\n' ;

这种方法的好处是,导出的数据可以自己规定格式,并且导出的是纯数据,不存在建表信息,你可以直接导入另外一个同数据库的不同表中,相对于mysqldump比较灵活机动。

转载地址:http://iwnsi.baihongyu.com/

你可能感兴趣的文章
安利 10 个让你爽到爆的 IDEA 必备插件!
查看>>
自学编程的八大误区!克服它!
查看>>
GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!
查看>>
早知道这些免费 API,我就可以不用到处爬数据了!
查看>>
Java各种集合类的合并(数组、List、Set、Map)
查看>>
JS中各种数组遍历方式的性能对比
查看>>
Mysql复制表以及复制数据库
查看>>
进程管理(一)
查看>>
linux 内核—进程的地址空间(1)
查看>>
存储器管理(二)
查看>>
开局一张图,学一学项目管理神器Maven!
查看>>
Android中的Binder(二)
查看>>
Framework之View的工作原理(一)
查看>>
Web应用架构
查看>>
设计模式之策略模式
查看>>
深究Java中的RMI底层原理
查看>>
用idea创建一个maven web项目
查看>>
Kafka
查看>>
9.1 为我们的角色划分权限
查看>>
维吉尼亚之加解密及破解
查看>>