MySQL导入导出

MySQL导入导出方法总结,使用into outfile 和 load data infile导入导出数据。

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

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

select*frommytablewherestatus!=0andname!=''intooutfile'/home/db_bak2012'
fieldsterminatedby'|'enclosedby'"'linesterminatedby'\r\n';

参考: https://dev.mysql.com/doc/refman/5.7/en/select-into.html

导入刚才备份的数据,可以使用load data infile方法,等价于mysqlimport命令,下面的mysql命令,把导出的数据导入了mytable_bak的表中:

loaddatainfile'/home/db_bak2012'intotablemytable_bak
fieldsterminatedby'|'enclosedby'"'linesterminatedby'\r\n';

参考: https://dev.mysql.com/doc/refman/5.7/en/load-data.html https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

使用mysqldump导出数据库

我们来看几个常用用例:

(1)导出整个数据库数据和表结构 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

(2)导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

(3)导出结构不导出数据 mysqldump --opt -d 数据库名 -u root -p > xxx.sql mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql #-d 不导出数据只导出结构 --add-drop-table 在每个create语句之前增加一个drop table

(4)导出数据不导出结构

mysqldump -t 数据库名 -uroot -p > xxx.sql

(5)导入数据库,常用source 命令

mysql -u root -p mysql>use 数据库 mysql>set names utf8; (先确认编码,如果不设置可能会出现乱码,注意不是UTF-8) mysql>source ./wcnc_db.sql

(6)多库导出 上边的实例只是最基础的,有的时候我们可能需要批量导出多个库,我们就可以加上--databases 或者-B,如下语句:

mysqldump -uroot -p --databases test mysql #空格分隔

还有的时候我们可能需要把数据库内所有的库全部备份,我们就可以使用-all-databases,如下语句:

mysqldump -uroot -p -all-databases

(7)条件导出

mysqldump命令中带有一个 --where/-w 参数,它用来设定数据导出的条件,使用方式和SQL查询命令中中的where基本上相同,有了它,我们就可以从数据库中导出你需要的那部分数据了。

命令格式如下:

mysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" > 导出文件路径

例子:

从test数据库的test_data表中导出id大于100的数据到 /tmp/test.sql 这个文件中

mysqldump -uroot -p123456 test test_data --where=" id > 100" > /tmp/test.sql

导入的时候

mysql -u root -p 123456 test test_data < test.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值