mysql dump导出_MySQL mysqldump数据导出详解

本文详细介绍了mysqldump工具的各种参数及其用法,包括导出所有数据库、特定数据库、指定表、条件导出、跨服务器导出、只导出表结构、压缩备份等内容,以及如何保证数据一致性。还提到了错误处理和一些常用但未详述的参数。
摘要由CSDN通过智能技术生成

介绍

在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具;它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有的参数详细说明列出来。

语法:

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

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

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

插入测试数据

48304ba5e6f9fe08f3fa1abda7d326ab.pngCREATE DATABASE db1 DEFAULT CHARSET utf8;USE db1;CREATE TABLE a1(id int);insert into a1() values(1),(2);CREATE TABLE a2(id int);insert into a2() values(2);CREATE TABLE a3(id int);insert into a3() values(3);CREATE DATABASE db2 DEFAULT CHARSET utf8;USE db2;CREATE TABLE b1(id int);insert into b1() values(1);CREATE TABLE b2(id int);insert into b2() values(2);

48304ba5e6f9fe08f3fa1abda7d326ab.png

1.导出所有数据库

该命令会导出包括系统数据库在内的所有数据库mysqldump -uroot -proot --all-databases >/tmp/all.sql

2.导出db1、db2两个数据库的所有数据mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql

5f2993c274f458e7d921050b5165eb30.png

3.导出db1中的a1、a2表

注意导出指定表只能针对一个数据库进行导出,且导出的内容中和导出数据库也不一样,导出指定表的导出文本中没有创建数据库的判断语句,只有删除表-创建表-导入数据mysqldump -uroot -proot --databases db1 --tables a1 a2  >/tmp/db1.sql

b62bc4d58b4e2d1b4caf27fb3cf7f273.png

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

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

字段是×××mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1'  >/tmp/a1.sql

3624abc2a9fd572f30a4a441f23fb923.png

字段是字符串,并且导出的sql中不包含drop table,create tablemysqldump -uroot -proot --no-create-info --databases db1 --tables a1 --where="id='a'"  >/tmp/a1.sql

5.生成新的binlog文件,-F

有时候会希望导出数据之后生成一个新的binlog文件,只需要加上-F参数即可mysqldump -uroot -proot --databases db1 -F >/tmp/db1.sql

6.只导出表结构不导出数据,--no-datamysqldump -uroot -proot --no-data --databases db1 >/tmp/db1.sql

7.跨服务器导出导入数据mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2

将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test

加上-C参数可以启用压缩传递。

8.将主库的binlog位置和文件名追加到导出数据的文件中,--dump-slave

注意:--dump-slave命令如果当前服务器是从服务器那么使用该命令会执行stop slave来获取master binlog的文件和位置,等备份完后会自动执行start slave启动从服务器。但是如果是大的数据量备份会给从和主的延时变的更大,使用--dump-slave获取到的只是当前的从服务器的数据执行到的主的binglog的位置是(relay_mater_log_file,exec_master_lo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值