Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql 数据导入与导出

mysql 数据导入与导出

作者头像
用户1560186
发布于 2019-12-18 08:53:32
发布于 2019-12-18 08:53:32
5.4K00
代码可运行
举报
文章被收录于专栏:运维录运维录
运行总次数:0
代码可运行

开始之前

在日常的运维工作中除了频繁操作基本的SQL语句外,还有另外一种场景,就是数据的导出与导入操作。

举个栗子: 例如逻辑备份需要使用mysqldump导出数据进行逻辑备份数据,或者需要将测试环境的某个表导出、处理后在生产环境使用mysql命令导入数据等。

环境描述

1. MySql 版本 5.7.20

2. 数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+

3个库,其中 test库是我们自己创建的。其余的两个库是 mysql服务器自有的系统库

3. 数据表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| table1         |
| table2         |
+----------------+

我们在 test库,创建了2个table

导出数据

1. 导出表结构和数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 含有`create``lock``insert`语句,注意选项 `--opt`
# mysqldump --opt 数据库名 -u用户 -p > my-db.sql
mysqldump --opt test -uroot -p > test-full.sql

2. 导出表结构不导出数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 含有 `create table` 语句,注意选项 `-d`
# mysqldump -d 数据库名 -u用户 -p > my-db.sql
mysqldump -d test -u root -p > test-table.sql

3. 导出数据不导出表结构

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 含有 `lock``insert`语句,注意选项 `-t`
# mysqldump -t 数据库名 -u用户 -p > my-db.sql
mysqldump -t test -u root -p > test-data.sql

4. 导出单个表(结构和数据)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 与上述示例不同,仅导出数据库中的某个表,而不是库中所有表
# mysqldump --opt 数据库名 表名 -u用户 -p > table.sql
mysqldump --opt test table1 -uroot -p > table-single.sql

5. 导出所有库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 导出全部的数据,包括mysql自身的系统库
# mysqldump --opt --all-databases -u用户 -p > all.sql
mysqldump --opt --all-databases -uroot -p > all.sql

6. 导出并压缩数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使用管道组合 mysqldump 与 gzip 命令
mysqldump --opt test -uroot -pPasswd | gzip > table-full.gz

# 文件类型
file table-full.gz
table-full.gz: gzip compressed data, # 省略...
导入数据

1. 导入SQL数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# mysql -h Server_IP -u用户 -p 数据库名 < my-db.sql
mysql -h 8.8.8.8 -uroot -p test < table-full.sql

注意: mysqldump 命令使用--opt选项导出的数据默认包含DROP TABLE语句,例如 "DROP TABLE IF EXISTS table1;" 。

这种情况下请在导入数据前做好数据备份工作,或者根据实际需求删除DROP TABLE语句。

2. 导入压缩数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 没有 -h 选项,表示服务器为 localhost
gzip -dc table-full.gz | mysql -uroot -p test
命令帮助
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysqldump --help
mysqldump  Ver 10.13 Distrib 5.7.27, for Linux (x86_64)

# 省略...
Dumping structure and contents of MySQL databases and tables.
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

# 省略...
-h, --host=name
    Connect to host.

-u, --user=name    
    User for login if not current user.

-p, --password[=name]

-d, --no-data
    No row information.

-t, --no-create-info 
    Don't write table creation info.

-A, --all-databases 
    Dump all the databases.
    This will be same as --databases with all databases selected.

--opt Same as --add-drop-table, --add-locks, --create-options,
    --quick, --extended-insert, --lock-tables, --set-charset,
    and --disable-keys. Enabled by default, disable with -skip-opt.
    
-R, --routines
Dump stored routines (functions and procedures).
小结

最后来总结下文章中的知识点

  • mysqldump 与 mysql 两个命令日常工作使用频繁,建议掌握使用方法。
  • mysqldump 导出数据如果很大,可以使用shll管道与gzip命令压缩。
  • 慎用--all-databases选项备份全部数据库,建议独立备份每个库。
  • 对于含有储过程和函数、触发器,还要加上--routines 选项。

http://zongming.net/read-536

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQLdump的参数详解大全
mysqldump -uroot -p –all-databases –all-tablespaces
全栈程序员站长
2022/06/29
2K0
mysql导入导出命令-mysqldump
一、mysqldump工具介绍 mysqldump 是个mysql数据库自带的命令行工具,单线程执行,可以用来备份和还原数据。可以生成 CSV、TXT、XML格式的文件输出。 查看帮助文档 二、利用mysqldump进行数据库备份 《一》数据库操作 1、 备份所有数据库 mysqldump -h 主机IP -uroot -p --all-database > /data/dball.sql 2、备份多个数据库 mysqldump -h 主机IP -uroot -p db1 db2 db3 >/d
Linux运维技术之路
2022/06/07
7.4K0
mysql导入导出命令-mysqldump
MySQL mysqldump数据导出详解
 在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具;它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有的参数详细说明列出来。
拓荒者
2019/03/15
13K0
MySQL mysqldump数据导出详解
Mysql备份工具mysqldump--参数
参数 Mysqldump命令参数 #获得帮助 --help #备份所有库,这样设置的账号密码什么的也会备份了 --all-databases #不缓冲查询,直接导出到标准输出。默认为打开状态 --quick #如果有3个数据库整体导出,每次只会对一个库添加只读锁,不会影响其它数据库。所以该参数只能保证各个schema自己的数据一致性快照。该参数默认打开。 --lock-tables #不锁表,保证各个表具有数据一致性快照。这期间增删改查正常,但是alter table等对表结构发生更改的语句要被挂起。默认关
陈不成i
2021/06/11
1.6K0
MySQL数据备份与恢复
常用source命令,用use进入到某个数据库,mysql>source D:\sys.sql,后面的参数为脚本文件
Linux
2019/07/26
2K0
mysqldump命令详解
mysqldump -uroot -p --all-databases --all-tablespaces
星哥玩云
2022/08/16
3K0
Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录
在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据。 线上数据库备份场景: 每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份. 下面对这种备份方案详细说明下: 1.MySQLdump增量备份配置 执行增量备份的前提条件是MySQL打开binlog日志功能,在my.cnf中加入 log-bin=/opt/Data/MySQL-bin “log-bin=”后的字符串为日志记载目录,一般建议放在不同于MySQL数据目录的磁盘上。 ---
洗尽了浮华
2018/01/23
5.3K0
mysqldump命令详解
mysqldump -h主机名 -P端口 -u用户名 -p密码 参数1,参数2.... > 备份文件.sql
IT工作者
2025/04/15
2560
MySQL数据库备份与恢复-使用MySQLDump记录
最近接了一个新需求,需要把 MySQL 备份做成可视化界面进行操作,使用代码去调用 MySQLdump 程序进程备份,使用 MySQL 程序进程恢复。
框架师
2021/11/22
5.1K0
mysqldump 命令参数详解
如下仅导出表数据,-c这样导出的数据行都带有列名字段,不带列名字段的 sql 会被 TDSQL for Percona、MariaDB 拒绝掉。
用户14527
2022/05/06
5.4K2
MySQL数据的导入导出/备份恢复
mysqldump 是 MySQL 自带的逻辑备份工具。它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。
Power
2025/03/01
3560
使用mysqldump导出数据库
    mysqldump是mysql用于转存储数据库的客户端程序。它主要产生一系列的SQL语句,可以封装到文件,该文件包含有所有重建您的数据库所需要的SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等。可以用来实现轻量级的快速迁移或恢复数据库。是mysql数据库实现逻辑备份的一种方式。本文描述了mysqldump的一些重要参数以及给出了相关示例供大家参考。
Leshami
2018/08/13
4.1K0
mysql数据备份与恢复
MySQL数据备份与恢复 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。 #2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 #3. 导出表: 将表导入到文本文件中。 一、使用mysqldump实现逻辑备份 #语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql (本地使用可以省略 -h 服务器名) 当用户登陆不需要密码时(密码为空或在配置文件中已
用户1214487
2018/01/24
3.3K0
MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
浏览目录: 1.视图 2.触发器 3.存储过程 4.函数 5.事物 6.数据库锁 7.数据库备份 1.视图 视图:是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据 视图有如下特点;   1. 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。   2. 视图是由基本表(实表)产生的表(虚表)。   3. 视图的建立和删除不影响基本表。   4. 对视图内容的更新(添加、删除和修改)直接影响基本表。
人生不如戏
2018/04/10
1.7K0
MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
mysql备份与恢复
  MySQL数据库自带的一个很好用的备份命令。是逻辑备份,导出 的是SQL语句。也就是把数据从MySQL库中以逻辑的SQL语句的形式直接输出或生成备份的文件的过程。
暖月寒星
2020/03/11
2.7K0
MLOG_CHECKPOINT缺失下紧急数据恢复
生产环境MySQL数据库,架构是一主一从,可以双机切换,MySQL版本是5.7.24-enterprise-commercial-advanced-log。当时是存储MySQL的机房突然断电。主从机器重启后,MySQL都无法启动。两台机器都是同样错误,错误日志显示:
数据和云
2021/08/27
1.5K0
MySQL 数据备份&恢复(mysqldump 工具)
数据无价,谨慎操作, 防止误删,学习备份... 一、mysqldump 备份工具 MySQL自带的逻辑备份工具 它支持数据库全备或指定库备份 它备份的输出以文件形式保存 并且文件内容都是SQL语句 选项 含义 -A --all-databases导出MySQL中所有数据库 -B --databases导出一个或多个数据库 -d 只导出表结构 -t 只导出表内容 --tables 指定需要导出的表名 --single-transaction innodb热备启用一个大的事务完成的备份保证数据完整性 --flu
技能锦囊
2020/04/15
3K0
MySQL数据备份mysqldump的简单使用
MySQLdump是一个数据库逻辑备份程序,可以使用对一个或者多个mysql数据库进行备份或者将数据传输到其他mysql服务器。执行mysqldump时需要账户拥有select权限才可以进行备份数据表,show view权限用于备份视图,trigger权限用于备份触发器等。
星哥玩云
2022/08/17
1.6K0
Mysql数据库备份还原和数据表、数据导出导入
mysqldump -uroot -p'pwd' -B db1db2 | gzip >/db_back.sql.gz 
菲宇
2022/12/02
7.1K0
数据库的备份,迁移
08.14自我总结 数据库的备份 一数据库的备份 1.单库备份 mysqldump -uroot -p123 db1 > db1.sql #库名 mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql #库名 表名 2.多库备份 mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql 3.备份所有库 mysqldump -uroot -
小小咸鱼YwY
2019/09/11
1.5K0
相关推荐
MySQLdump的参数详解大全
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验