MySQL导入导出方法总结

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

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

 

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


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

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

 

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

 

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

1
2
load  data infile  '/home/db_bak2012'  into  table  mytable_bak   
fields terminated  by  '|'  enclosed  by  '"'  lines terminated  by  '\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

 

参考:   
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1924898 ,如需转载请自行联系原作者



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL 数据库连接
关于MySQL-ODBC的zip包安装方法
关于MySQL-ODBC的zip包安装方法
|
2月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
108 1
|
2月前
|
关系型数据库 MySQL 测试技术
mysql中删除数据的几种方法
在MySQL数据库中,删除数据是一个常见的操作,它允许从表中移除不再需要的数据。在执行删除操作时,需要谨慎,以免误删重要数据。
57 3
|
23天前
|
关系型数据库 MySQL Linux
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
22 0
|
2天前
|
缓存 关系型数据库 MySQL
mysql用in查询大量数据的方法
在MySQL中使用 IN 子句来查询大量数据时,性能可能会成为一个问题
|
2天前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。
|
24天前
|
SQL 关系型数据库 MySQL
mysql查询语句的访问方法const、ref、ref_or_null、range、index、all
mysql查询语句的访问方法const、ref、ref_or_null、range、index、all
|
29天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:优化产品管理,MySQL函数实用方法(10)
轻松入门MySQL:优化产品管理,MySQL函数实用方法(10)
|
2月前
|
SQL 关系型数据库 MySQL
MySQL 百万级数据量分页查询方法及其优化
MySQL 百万级数据量分页查询方法及其优化
23 0
|
2月前
|
canal 关系型数据库 MySQL
四种常用的 MySQL 数据同步 ES 的方法
【2月更文挑战第16天】
213 2
四种常用的 MySQL 数据同步 ES 的方法