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