mysqldump 常用操作总结操作

今天药忘吃喽~ 2022-11-21 15:29 304阅读 0赞

在对数据库进行维护的过程中,mysqldump是导出数据过程中使用非常频繁的一个工具。本文会列举一些常用的操作。

1.默认无参数操作

  1. #方法一:
  2. mysqldump [OPTIONS] database [tables]
  3. #方法二:
  4. mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
  5. #方法三:
  6. mysqldump [OPTIONS] --all-databases [OPTIONS]

采用这三种方法导出的数据,文本内容大概如下:创建数据库判断语句-删除表-创建表-锁表-禁用索引-插入数据-启用索引-解锁表。

在日常需求中我们需要根据要求导出数据,所以只使用默认参数导出的方法完全不能满足我们的需求。

2.导出全部数据库

  1. #【-A, --all-databases】导出所有数据库数据,包括数据库和表的创建脚本
  2. mysqldump -uroot -pmysql -A > ./all.sql
  3. #【-a】导出包括创建选项,默认启用(如创建表时带有选项 ENGINE DEFAULT CHARSET);
  4. # 相反:不需要选项则使用 --skip-create-options
  5. mysqldump -uroot -pmysql -a test >./test.sql
  6. mysqldump -uroot -pmysql --skip-create-options test >./test.sql

3.导出test、dbname2两个数据库的所有数据

  1. #【-B, --databases】导出指定数据库数据,包括数据库和表的创建脚本
  2. # 相反使用 -n, --no-create-db
  3. mysqldump -uroot -pmysql -B test dbname2
  4. mysqldump -uroot -pmysql -n test

4.导出db1中的a1、a2表

注意导出指定表只能针对一个数据库进行导出,且导出的内容中和导出数据库也不一样,导出指定表的导出文本中没有创建数据库的判断语句,只有删除表-创建表-导入数据

  1. mysqldump -uroot -pmysql --databases db1 --tables a1 a2 >./db1.sql

5.条件导出,导出db1表a1中id=1的数据

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

字段是整形

  1. mysqldump -uroot -pmysql -B db1 --tables a1 --where='id=1' >./a1.sql

字段是字符串,并且导出的sql中不包含drop table,create table
[–no-create-info 或者 -t] 只导出数据,而不添加CREATE TABLE 语句

  1. mysqldump -uroot -pmysql -t -B db1 --tables a1 --where="id='a'" >./a1.sql

6.导出完整插入语句

  1. #【-c】完整插入语句,insert时把字段名都列出,如insert into tab(id,name)valeus(1,'A')
  2. mysqldump -uroot -pmysql -B -c test
  3. #【-C】服务器客户端协议间使用压缩
  4. mysqldump -uroot -pmysql -B -C test
  5. 只导出 Insert 语句的数据 表结构
  6. mysqldump -uroot -pmysql --skip-add-drop-table -B test --tables tablename > /root/table.sql
  7. 只导出 Insert 语句的数据
  8. mysqldump -uroot -pmysql --no-create-info -B test --tables tablename > /root/table.sql
  9. #【-e, --extended-insert】多个insert使用一个语句多个values,默认启用
  10. #相反:每个value一个insert则使用 --skip-extended-insert
  11. mysqldump -uroot -pmysql -e test
  12. mysqldump -uroot -pmysql --skip-extended-insert test

7.只导出表结构不导出数据,[–no-data, -d]

  1. #【--no-data, -d】只导出创建脚本,不导出数据
  2. mysqldump -uroot -pmysql -d test

8.跨服务器导出导入数据

  1. mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2

将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错

  1. mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test

9.导出时锁定

  1. #【-l, --lock-tables】导出时锁定所有表,使保持一致性。
  2. mysqldump -uroot -pmysql -l test
  3. #【-x, --lock-all-tables】 锁定所有数据库和表,全局读锁。关闭 --single-transaction 和 --lock-tables
  4. mysqldump -uroot -pmysql -x test

其它常用选项:

  1. --no-create-db ---取消创建数据库sql(默认存在)
  2. --no-create-info,---取消创建表sql(默认存在)
  3. --no-data ---不导出数据(默认导出)
  4. --add-drop-database ---增加删除数据库sql(默认不存在)
  5. --skip-add-drop-table ---取消每个数据表创建之前添加drop数据表语句(默认每个表之前存在drop语句)
  6. --skip-add-locks ---取消在每个表导出之前增加LOCK TABLES(默认存在锁)
  7. --skip-comments ---注释信息(默认存在)

mysqldump参数说明
Mysql数据库操作总结

发表评论

表情:
评论列表 (有 0 条评论,304人围观)

还没有评论,来说两句吧...

相关阅读

    相关 cassandra操作总结

    前言 在上一篇,我们演示了如何基于centos7快速搭建起cassandra的运行环境,以及服务的启动和cql客户端命令行,本篇将基于此环境对cassandra的基础使用