mysql导出表结构,数据,mysqldump详解

mysqldump定义:

mysqldump是MySQL系统自带的逻辑备份工具,在对数据库进行导出工作时,经常会用到mysqldump。

 

 

 mysqldump作用:
mysqldump主要产生一系列的SQL语句。例如:备份创建表或者装在表的SQL语句。

 

mysqldump封装的文件包含:重建数据库锁需要的 SQL 命令 如 CREATE DATEBASE,  CREATE TABLE,   INSERT 等。

 

mysqldump语法基础:

mysqldump   [OPTIONS]    database  [tables]

 mysqldump   [OPTIONS]   --databases  [OPTIONS]  DB1  [DB2   DB3...]

 mysqldump   [OPTIONS]   --all-databases  [OPTIONS]

 执行mysqldump   --help  或参考 MYSQL官方文档,可以看到mysqldump工具可配置的参数有很多。

 

 

 

mysqldump使用

1.导出所有数据库

该命令会导出包含系统数据库在内的所有数据库

登录运行了mysql 数据库的机器,输入下面的命令(username是数据库的用户名)

mysqldump  -u  username  -p  --all-databases  >  all.sql
按下回车之后,再输入密码
然后继续按下回车键,就导出数据了。数据导入到了 all.sql 文件里面。

 

2.导出指定数据库的所有数据

mysqldump  -u  username  -p  --databases  dbnameA  >  dbnameASql.sql

按下回车键,输入密码。

这里 username 是数据库密码;

dbnameA 是 你想导出的数据库名称 

dbnameASql.sql 是导出的文件

 

导出多个的时候

mysqldump  -u  username  -p  --databases   dbnameA  dbnameB  >  dbABSql.sql

将dbnameA,dbnameB 2个数据库的内容导出到 dbABSql.sql 文件中

 

3.导出指定数据库中的指定表数据

mysqldump  -u  username  -p  --databases  dbnameA  --tables  tbA  tbB  >  tbAB.sql

将 dbnameA数据库里面的 tbA,tbB 2个表导出到 tbAB.sql文件中

 例如:

mysqldump -u upchina -p --databases fupan_dev --tables leadblockinfo > leadblockinfo20230329.sql

将 fupan_dev 数据库里面的 leadblockinfo 的数据导出

 

 

4.只导出表结构不导出数据

mysqldump  -u  username  -p  --no-data  --databases db1  >  db1_sql.sql

将db1数据库的所有表结构导出到 db1_sql.sql文件中。

请注意,执行导出的sql前要查看一下sql语句。

很多导出的语句,都有drop 语句,会删除以前的表。如果直接执行,会将数据库历史记录清空的。

请谨慎操作!!!不要直接执行导出后的sql语句!!!

导出数据库的表结构,还有一种简洁的写法:

 mysqldump -u upchina -p -d fupan_dev >  fupan_dev_sql20230329.sql
fupan_dev 是我们要导出的数据库
fupan_dev 数据库里面的表结构到导入到了 fupan_dev_sql20230329.sql 文件中。


如果要导远程的机器的时候,加入 "-h host地址"
例如:
 mysqldump -h 172.16.8.58 -u upchina  -p -d fupan_dev > fupan1.sql 

我们从  172.16.8.58 这台机器上,导出  fupan_dev 数据库的表结构。

 

5.导出为多条 INSERT 语句

--extended-insert  表示 INSERT 语句, 多 row 在一起批量 INSERT,提高导入效率,默认开启 用  --externed-insert=false关闭。强烈建议开启

mysqldump  -u  username  -p  -B  test  --tables  t1  --externded-insert=false  >  t1.sql

 

6.按查询条件导出,导出指定表中符合查询条件的数据

mysqldump  -u  username  -p  --databases  db1  --tables  t1  --where='id=1'  >  t1.sql

 

8.导出函数和存储过程

mysqldump  -u  username  -p  -ntd  -R  dbname  >  pro.sql 

 

9.导出EVENT事件

mysqldump  -u  username  -p  -ndt  -E  dbname  >  event.sql

 

10.导出并压缩文件

time  mysqldump  -u  username  -p  --databases  dbname  | gzip  --fast  >  db_sql.gz 

 

参考地址:

https://mikechen.cc/24366.html

 

posted @ 2023-03-29 18:09  He_LiangLiang  阅读(7994)  评论(0编辑  收藏  举报