暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysqldump只导出表结构或只导出数据的实现方法

空了个白 2024-05-16
355

语法:

默认不带参数的导出,导出文本内容大概如下:创建数据库判断语句-删除表-创建表-锁表-禁用索引-插入数据-启用索引-解锁表。

1

2

3

Usage: mysqldump [OPTIONS] database [tables]

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

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

  

一:导出数据库 

代码如下:

1

2

3

#mysqldump 数据库名 >数据库备份名

#mysqldump -A -u用户名 -p密码 数据库名>数据库备份名

#mysqldump -d -A --add-drop-table -uroot -p >xxx.sql

  

1.1:导出所有数据库

1

mysqldump -h192.168.1.1 -P3306 -uroot -ppassword --set-gtid-purged=off --all-databases > /data1/xinchen/testdump/all.sql

  

1.2:导出test_db1、test_db2数据库

1

mysqldump -h192.168.1.1 -P3306 -uroot -ppassword --set-gtid-purged=off --databases test_db1 test_db2> /data1/xinchen/testdump/dump_dbs.sql

  

 

二:导出表数据

2.1:导出test_db1中的table11、table12表

1

mysqldump -h192.168.1.1 -P3306 -uroot -ppassword --set-gtid-purged=off --databases test_db1 --tables table11 table12 > /data1/xinchen/testdump/dump_table1.sql

  

 

2.2:条件导出表数据

如果多个表的条件相同可以一次性导出多个表。

 

  • 条件字段是整型

1

mysqldump -h192.168.1.1 -P3306 -uroot -ppassword --set-gtid-purged=off --databases test_db1 --tables table11 --where='id=11' /data1/xinchen/testdump/dump_table2.sql

  

  • 条件字段是字符串

1

mysqldump -h192.168.1.1 -P3306 -uroot -ppassword --set-gtid-purged=off --databases test_db1 --tables table11 --where="name='name12'" /data1/xinchen/testdump/dump_table3.sql

  

 

2.3:导出表数据,不包含drop table,create table

增加参数:--no-create-info

1

mysqldump -h192.168.1.1 -P3306 -uroot -ppassword --set-gtid-purged=off --no-create-info --databases test_db1 --tables table11 --where="name='name12'" /data1/xinchen/testdump/dump_table4.sql

  

 

 

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

代码如下:


1

mysqldump --opt -d 数据库名 -u root -p > xxx.sql  

 增加参数:--no-data

1

mysqldump -h192.168.1.1 -P3306 -uroot -ppassword --set-gtid-purged=off --no-data --databases test_db1 --tables table11 --where="name='name12'" /data1/xinchen/testdump/dump_table5.sql

  

 

 

 

2.5.导出数据不导出结构 

代码如下:


1

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

  


2.6.导出数据和表结构 

代码如下:


1

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

  


2.7.导出特定表的结构 

代码如下:


1

mysqldump -uroot -p -B 数据库名 --table 表名 > xxx.sql  

  

 

三:其他导出参数

前面统一的内容都省略:

1

mysqldump -h192.168.1.1 -P3306 -uroot -ppassword --set-gtid-purged=off

 

3.1:生成新的binlog文件:-F

有时候会希望导出数据之后生成一个新的binlog文件,只需要加上-F参数即可

mysqldump -h -P -u -p --set-gtid-purged=off -B test_db1 --tables table11 --where="name='name12'" > /tmp/tb1.sql

 

3.2:跨服务器导出导入数据

mysqldump --host=h1 -P -u -p --databases db1 | mysql --host=h2 -uroot -proot db2

 

3.2:--opt

等同于--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 该选项默认开启, 可以用--skip-opt禁用.

mysqldump -uroot -p --host=localhost --all-databases --opt

 

 

四:导入数据

由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了: 

代码如下:


1

2

#mysql 数据库名 < 文件名

#source /tmp/xxx.sql 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论