mysqldump、into outfile和load data进行数据库导入导出备份差别

遇到了大批量导入导出数据的时候真的比较麻烦,动则几G的数据,操作起来也是比较慢的,而且如果稍有不慎,还要重写处理,最简单的方法也是效率最低的方法就是使用PHP写导入导出数据程序,用Shell来跑PHP,可是大家一直忽略了mysqldump 和mysql的into outfileload 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 outfileload 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比较灵活机动。

时间: 2024-11-12 02:46:44

mysqldump、into outfile和load data进行数据库导入导出备份差别的相关文章

使用load data infile来导入导出数据

先导出数据 mysql> select * from timer_gps_posinfo where time>'2017-01-01 00:00' and time <'2017-01-02 00:00' into outfile '/home/posinfo.txt' fields terminated by ','; 报错: ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv opt

Oracle数据库导入导出备份

以下命令都在终端doc 下执行 (一)整库导出与导入  整库导出命令 exp system/itcast full=y             #添加参数 full=y 就是整库导出    system 账号   itcast 密码 执行命令后会在当前目录下生成一个叫 EXPDAT.DMP,此文件为备份文件. 如果想指定备份文件的名称,则添加 file 参数即可,命令如下 exp system/itcast file=文件名 full=y 整库导入命令 imp system/itcast ful

expdp impdp 数据库导入导出命令详解

一.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建. create directory dpdata1 as 'd:\test\dump'; 二.查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错) select * from dba_directories; 三.给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予. grant read,write on directory dpdata

功能齐全、效率一流的免费开源数据库导入导出工具(c#开发,支持SQL server、SQLite、ACCESS三种数据库),每月借此处理数据5G以上

软件名:DataPie 功能:支持SQL server.SQLite.ACCESS数据库的导入.导出.存储过程调用,支持EXCEL2007.EXCEL2003.ACCESS2007. CSV文件导入数据库,支持EXCEL.CSV.ZIP.ACCESS文件方式导出,支持数据拆分导出及自定义SQL查询与导出. 开发背景:作者从事财务管理工作,主要是出具集团的内部财务报表,随着公司精细化管理的需求,管理报表的数据量急速增长, 依赖EXCEL加工处理数据已经变得极为困难,因此团队全面转向关系数据库进行数

mysql数据库导入导出及修改数据库名命令

概述 mysql 数据库导入导出,有两种方式 1)先导出SQL脚本,再导入(导入导出又分两种:1. 命令. 2. 工具.这里我们只介绍命令). 2)直接拷贝数据库文件(此方法不推荐). 一.mysql数据库导入 1.  已有数据库,可以直接用mysql命令 命令格式 mysql -u用户名 -p密码 数据库名 <  sql文件路径 示例:mysql -uroot -p12345678  test <  /root/test.sql 2.  创建新数据导入 mysql -uroot -p1234

linux系统上Mysql数据库导入导出操作

需求:把MySQL数据库目录中的dz数据库备份到/home/dz_bak.sql ,然后再新建一个数据库dzbak,最后把/home/dz_bak.sql 导入到数据库dzbak中.操作如下:以下操作均在终端命令行下进行 1.mysqldump -u root -p dz > /home/dz_bak.sql        #导出数据库     123456     #输入数据库密码     扩展:     mysqldump -u root -p dz pre_portal_comment >

oracle数据库导入导出方法

Oracle Database 10g以后引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中. 数据泵导出导入(EXPDP和IMPDP)的作用  1.实现逻辑备份和逻辑恢复.  2.在数据库用户之间移动对象.  3.在数据库之间移动对象  4.实现表空间搬移. 数据泵导出导入与传统导出导入的区别: 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还

Oracle数据库导入导出实战总结(同版本)

今天闲來无事,就导了一个数据库玩玩,顺便总结下 0.cmd 命令 管理员权限登录数据库 sqlplus /  as sysdba 1.cmd 连接远程数据库 sqlplus xn_balance/[email protected]:1521/orcl --------导出 2.cmd 命令导出数据库(没必要连上数据库,直接导) exp xn_balance/[email protected]:1521/orcl file=d:/daochu.dmp full=y 3. 将数据库中system用户

Mysql:数据库导入导出

Mysql:数据库导入导出 Mysql数据库导出 mysqldump -h IP -u 用户名 -p 数据库名 > 导出的文件名 1.mysqldump是在cmd下的命令,需要在linux命令行下执行命令.2.-p后面指定的是数据库的名字,比不是密码. 实际演示: [root@VM_0_16_centos ~]# mysqldump -u root -p test > test.sql Enter password: [root@VM_0_16_centos ~]# ls dead.lette