Mysql--数据的导入导出以及备份
一、导入导出
1.1、into outfile(只导出数据)
注意:mysql 5.7+版本,secure_file_priv 的值默认为NULL,即不允许导入或导出,需在 /etc/my.cnf 添加 secure_file_priv = '' 或者 secure_file_priv = '指定目录' ,重启mysql
1.1.1 导出
select * from table_name into outfile 'file_path'; #指定分隔符
select * from table_name into outfile 'file_path' fields terminated by ',';
注意事项:
- 导出的文件一定是不存在的
- mysql用户对导出目录要有读写权限
- 导出的文件默认以\t为字段分隔符 \n为行分隔符
1.1.2 导入
load data infile '文件路径' into table 表名; #指定分隔符
oad data infile '文件路径' into table 表名 fields terminated by '分隔符';
注意事项:
- 文件不要放在mysql读不到的地方(注意目录权限)
- mysql用户对要导入的文件至少要有读的权限(文件权限)
- 文件名用双引或单引号引起来
二、备份
2.1、mysqldump
2.1.1 简介
mysqldump 是 MySQL 自带的逻辑备份工具。
备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。
2.1.2 选项
选项 | 缩写 | 说明 |
登录选项: | ||
-host | -h | 数据库服务器ip地址 |
–port | -P | 服务器端口号 |
–user | -u | MySQL 用户名 |
–password | -p | MySQL 密码 |
备份选项: | ||
-–databases or -B | 指定要备份的数据库,多个数据库空格隔开 | |
-–all-databases or -A | 备份所有数据库 | |
–-all-tablespaces or -Y | 备份所有表 | |
–-add-drop-table | 在每个CREATE TABLE语句前添加DROP TABLE语句,防止数据表重名 | |
--no-data or -d | 不备份数据 | |
-–compact | 压缩模式,产生更少的输出 | |
-–comments | 添加注释信息 | |
--lock-tables | 备份前,锁定数据库表 | |
–-lock-all-tables or -x | 备份前,锁定所有库表(全备时) | |
–-no-create-db/–no-create-info | 禁止生成创建数据库语句 | |
-–force | 当出现错误时仍然继续备份操作 | |
–-default-character-set | 指定默认字符集 | |
--flush-logs or -F | 更新二进制日志文件 | |
-master-data=2 | 1:每备份一个库就生成一个新的二进制文件(默认);2:生成一个新的二进制文件 | |
--single-transaction | 对事务引擎执行热备,获取一致性备份,仅对innodb存储引擎有效 | |
-w | 相当于-where |
2.1.3 导出
导出所有库,表(包含表结构与表数据)
#all.sql默认保存在bin下
库:
mysqldump -u -p --all-databases > all.sql 表:
mysqldump -u -p --databases db1 –-all-tablespaces > all.sql
导出多个库,表
库:
mysqldump -u -p --databases db1 db2 > all.sql 表:
mysqldump -u -p --databases db1 --tables t1 t2 > all.sql
导出单库,表
库:
mysqldump -u -p --databases db1 > all.sql 表:
mysqldump -u -p db1 t1 > all.sql
只导出表结构
mysqldump -u -p -d db1 t1 > all.sql
只导出表数据
mysqldump -u -p -t db1 t1 > all.sql
使用-w指定时间段导出
mysqldump -uroot -pyy123456 -t -w "notify_time > unix_timestamp('2022-04-20') and notify_time < unix_timestamp('2022-05-06')" sre alarm_lists > test2.sql
2.1.4 恢复
库:
mysql -u -p < all.sql 表:
mysql -u -p db1 < all.sql
2.1.5 source(导入大的sql文件)
mysql -u -p -e 'use db1;source all.sql;'
2.1.6 LOCK TABLES
导表的时候可能会报错:mysqldump: Got error: 1044: "Access denied for user 'sre'@'10.84.xxx.226' to database 'db1'" when doing LOCK TABLES
这是因为没有lock table的权限,在命令行加上 --single-transaction 解决
mysqldump --single-transaction -u sre -p -P 33066 -h 10.79.5.xxx db1 alarm_lists > alarm_lists.sql
Mysql--数据的导入导出以及备份的更多相关文章
- mysql 数据到 导入导出 总结
数据库数据的导入和导出受secure_file_priv配置项影响#限制导入导出,null时无法进行数据的导入导出,空时不限制,设置了目录则只能对该目录下的文件进行导入导出show variables ...
- 完美转换MySQL的字符集 Mysql 数据的导入导出,Mysql 4.1导入到4.0
MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级.降级,特别是 ...
- mysql数据的导入导出
2017-12-15 一. mysqldump工具基本用法,不适用于大数据备份 1. 备份所有数据库: mysqldump -u root -p --all-databases > ...
- Linux下MySql数据的导入导出
1,每天4点备份mysql数据: 2,为节省空间,删除超过3个月的所有备份数据: 3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据: mysqldump -u用戶名 -p密 ...
- MySQL数据表格导入导出
一 初始数据(共6条记录) username userpwd age admin admin 18 root root 18 cat cat 17 dog dog 15 dog1 dog1 15 zh ...
- Docker 中 MySQL 数据的导入导出
Creating database dumps Most of the normal tools will work, although their usage might be a little c ...
- MongoDB学习(三)数据导入导出及备份恢复
这几天想着公司要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下 ...
- Mysql --学习:大量数据快速导入导出
声明:此文供学习使用,原文:https://blog.csdn.net/xiaobaismiley/article/details/41015783 [实验背景] 项目中需要对数据库中一张表进行重新设 ...
- linux mysql 数据库操作导入导出 数据表导出导入
linux mysql 数据库操作导入导出 数据表导出导入 1,数据库导入 mysql -uroot -p show databases; create database newdb; use 数据库 ...
- SQL Server中bcp命令的用法以及数据批量导入导出
原文:SQL Server中bcp命令的用法以及数据批量导入导出 1.bcp命令参数解析 bcp命令有许多参数,下面给出bcp命令参数的简要解析 用法: bcp {dbtable | query} { ...
随机推荐
- CSP-J 2023 题解
CSP-J 2023 题解 T1 小苹果 这个题直接遍历枚举必定 TLE,这是 CCF 的出题风格,每题 T1 巨水无比,但是往往又需要一些思维. 这道题我们可以发现每一轮操作都会拿走 \(1 + ( ...
- iOS性能优化之内存分析
成功之前我们要做应该做的事情,成功之后我们才可以做喜欢做的事情. 从苹果的开发者文档里可以看到内存分类如下所示,其中 Leaked memory和 Abandoned memory 都属于应该释放 ...
- 【Javaweb】servlet一
什么是servlet 1.servlet是JavaEE规范之一,规范就是接口. 2.servlet是Javaweb三大组件之一.三大组件分别是:servlet程序.filter过滤器.listener ...
- C#12新功能有哪些?
前言 作为.NET 8发布会的一部分,微软于11月14日发布了C#12的新功能,这也是目前.NET的最新版本.正如之前公布的那样,最显著的改进包括了集合表达式.主构造函数.任何类型的别名以及lambd ...
- 0x04.信息收集
探针 被动:借助网上的一些接口查询或者网上已经获取到的,查看历史信息. 主动:使用工具,从本地流量出发,探测目标信息,会发送大量流量到对方服务器上. 谷歌语法 懒人语法:https://pentest ...
- 【UniApp】-uni-app-扩展组件
前言 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-内置组件 那么了解完了uni-app-内置组件之后,这篇文章来给大家介绍一下 UniApp 中的扩展组件 首先不管三七二十一,先来新建 ...
- 开发AI量化策略所遇到的坑
AI只是工具,想要驾驭AI还得自身有点功底,不然反而会被工具所害,甚至从信仰AI变为抵制AI.本文简单介绍开发AI量化选股策略中所遇到的各种坑,希望大家有所收获,少走弯路. 本文为BigQuant用户 ...
- 不会使用 EF Core 的 Code First 模式?来看看这篇文章,手把手地教你
EF Core Code First 是什么 Code First 是 Entity Framework Core (简称 EF Core) 的一种开发模式,它允许开发人员使用纯粹的代码来定义数据模型 ...
- 若依集成knife4j实现swagger文档增强
若依集成knife4j实现swagger文档增强 本期全是干货,这里我就当你用的非常熟练了,在ruoyi-admin模块中pom文件里加入以下依赖 注:引用knife4j-spring-boot-st ...
- java.time包中的类如何使用
java.time包是在java8中引入的日期和时间处理API,提供了一组全新的类,用于更灵活.更强大的处理日期和时间. 常用用法 1.localDate 表示日期,不包含时间和时区信息 import ...