MYSQL导出数据

导出数据

  1.   备份数据  
[root@sf105113 bin]# mysqldump -h127.0.0.1 -P3306 -uroot -p --add-locks -q dbname > dbname.sql  
//参数依次为:-h 主机 -p 端口 -u 用户名 -p 密码 --add-locks:导出过程中锁定表,完成后回解锁。
-q:不缓冲查询,直接导出至标准输出

  2.       只导出数据库表结构

[root@sf105113 bin]# mysqldump -h127.0.0.1 -P3306 -uroot -p--add-locks -q -d dbname > dbname.sql 
//-d:只导出表结构,不含数据 

     3.       只导出数据

[root@sf105113 bin]#  mysqldump -h127.0.0.1 -P3306 -uroot -ppassword --add-locks -q -t dbname.user > dbname.sql  
//-t:只导出表数据,不含结构

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

mysqldump --opt -d 数据库名 -u root -p -h 地址> xxx.sql
2.只导出数据 不导出表结构

mysqldump -t 数据库名 -u root -p -h 地址 > xxx.sql

mysqldump -u${user} -p${passwd} --no-create-info --database ${dbname} --table ${tablename} > ${tablename}.sql

或者

mysqldump -u${user} -p${passwd} -t ${dbname} > ${dbname}.sql


3.导出数据和表结构

mysqldump datang-highSpeed -u root -p -h 地 > datang-highSpeed.sql 

mysqldump datang-highspeed -u root -p > datang-highSpeed.sql 
4.导出特定表结构

mysqldump -u root -p -h 地址 -B 数据库名 --table 表名 > xxx.sql
5.导入mysql数据

mysql -u root -p 数据库名 < xxx.sql

导出表
mysqldump -u 账号 -p -h 连接地址 -P 端口 数据库名称 xx表 > xxx.sql

导入表
mysql -u 账号 -p -h 连接地址 -P 端口 数据库名称 < ./xxx.sql

Doris1.0支持mysqldump工具导出表结构和数据。

导出test数据库中的students表:mysqldump -h127.0.0.1 -P 9030 -uroot --no-tablespaces --databases test --tables students > students2.sql
导出test数据库中的students表结构:mysqldump -h127.0.0.1 -P 9030 -uroot --no-tablespaces --databases test --tables students  --no-data > students2.sql
导出test库中所有的表:mysqldump -h127.0.0.1 -P 9030 -uroot --no-tablespaces --databases test
导出所有数据库和表:mysqldump -h127.0.0.1 -P 9030 -uroot --no-tablespaces --all-databases
导出的sql文件可以source命令导入Doris中
 

一、 导出

导出用户需要有导出对象的权限,例如导出表要有select权限、导出视图要有show view权限、导出触发器要有trigger权限、需要锁表时要有lock tables权限等。

如果dump文件中包含了GTID信息,则无法导入到未启用GTID的数据库(低于5.6.9版本的数据库不支持GTID,因此也无法导入到这些库中)。

1. db级

导出所有db结构和数据

mysqldump -uroot -p -A > /data/bak/all.sql

仅导出所有db结构

mysqldump -uroot -p -A -d > /data/bak/all_struct.sql

仅导出所有db数据不导表结构

mysqldump -uroot -p -A -t > /data/bak/all_data.sql

导出单个db结构和数据

mysqldump -uroot -p mydb > /data/bak/mydb.sql

仅导出单个db结构

mysqldump -uroot -p mydb -d > /data/bak/mydb.sql

仅导出单个db数据

mysqldump -uroot -p mydb -t > /data/bak/mydb.sql

导出多个db结构和数据(--databases参数,数据,结构单独导出方法同上)

mysqldump -uroot -p --databases db1 db2 > /data/bak/muldbs.sql

2. 表级

导出指定db某张表结构及数据(数据,结构单独导出方法同上)

mysqldump -uroot -p dbname test > db.sql

导出指定db中多张表(test1,test2,test3)结构及数据

mysqldump -uroot -p dbname test1 test2 test3 > db.sql

排除部分表,导出DB中其余表结构和数据

mysqldump -uroot -p mydb --ignore-table=mydb.test1 --ignore-table=mydb.test2 > /data/bak/mydb.sql

指定where条件导出表的部分数据

mysqldump -uroot -w "id=6032" -p db_name  tbl_name > /tmp/where.sql


3. 主要导出参数

  • --all-databases, -A:导出所有数据库
  • --databases, -B:导出多个数据库。不使用该选项时,mysqldump把第一个名字参数作为db名,后面的作为表名;使用该选项时,则把每个名字都当作为db名。
  • default-character-set:指定默认字符集,不指定默认为UTF-8
  • --force, -f:即使发现sql错误,仍然继续导出
  • --no-data, -d:只导出表结构
  • --port=port_num, -P port_num:端口号
  • --quick, -q:强制mysqldump从服务器每次查询一行数据而不是查询整个表。避免大表导出时查询刷爆内存且热点数据被刷出缓冲池,通常建议总是启用该选项。
  • --tables:覆盖 --databases or -B选项,后面所跟参数被视作表名
  • --tab=path(-T path):产生TAB分割的数据文件,为每张表建一个包含create table语句的tabname.sql和一个包含数据的tabname.txt文件
  • --xml, -X:导出为xml文件
  • --single-transaction:导出开始前先执行start transaction命令,导出时不锁表,仅支持InnoDB存储引擎,需要确保导出时无DDL操作
  • --lock-tables(-l):导出过程中依次锁住每个schema下所有表(只能保证各schema下表导出的一致性),被锁的表只能读,MyISAM存储引擎常用
  • --lock-all-tables(-x):导出过程中锁住所有schema下所有表,避免前面参数无法保证所有schema下表导出的一致性的问题,但是所有表都变为只读
  • --master-data=[value] 主要用于建从库。value=1时,dump文件包含change master语句,导入时自动执行;value=2时,change master语句被注释,需手动执行。--master-data会忽略--lock-tables选项,如果不加--single-transaction选项会自动使用--lock-all-tables
  • --where(-w):指定导出条件
  • --events(-E):导出事件调度器
  • --routines(-R):导出存储过程和函数
  • --triggers:导出触发器
  • --hex-blob:将binary,varbinary,blog,bit列类型导出为16进制格式

二、 导入

导入用户需要有执行备份文件中语句的权限(ddl、dml等)。

1. 常用导入方法

  • 系统命令行方法

mysql -uroot -p < test_backup.sql

  • mysql命令行source方法

mysql -uroot -p

source /home/mysql/test_backup.sql
 

2. 导入示例

导入所有数据库

  • mysql命令行:mysql>source /data/bak/all.sql
  • 系统命令行: mysql -uroot -p123456 < /data/bak/all.sql

导入单个数据库

  • mysql命令行:

mysql>use mydb

mysql>source /data/bak/mydb.sql

  • 系统命令行:

mysql -uroot -p123456 mydb < /data/bak/mydb.sql

导入单个数据库的多个表

  • mysql命令行:

mysql>use mydb

mysql>source /data/bak/multables.sql

  • 系统命令行:

mysql -uroot -p123456 mydb < /data/bak/multables.sql

导入多个数据库(一个备份文件里有多个数据库的备份,此时不需要指定数据库)

  • mysql命令行:

mysql>source /data/bak/muldbs.sql

  • 系统命令行:

mysql -uroot -p123456 < /data/bak/muldbs.sql

三、 拼出部分对象创建语句

有时将数据库迁移新环境时,业务方会要求修改新库库名和用户名,如果源库中有视图,存储过程、函数、触发器、事件等对象,导入时会遇到问题,因为这些对象definer中可能会写明了用户,创建语句中指定了库名。

这种情况下,可以先做一次全量导入,然后删掉这些问题对象,再分别用导入创建语句的方式导入这些对象。

1. 导出视图创建语句

创建视图的时候一般会带上库名和definer的定义,如果迁移数据时,目标库的库名、用户名和源库的不一样,则视图迁移会失败。 如果遇到这种情况,需要分2步导出,第1步迁移表数据,第2步迁移视图。

  • 查询出要导的库的全部表
select table_name from information_schema.tables where table_schema='mytest' and table_type!='view';
  •  查询之后,用notepad++替换掉| 和\r 回车,然后mysqldump命令导出
mysqldump --set-gtid-purged=OFF -uroot -p --single-transaction -R --triggers --events --max_allowed_packet=1G mytest T1 T2 T3 T4
  • 导出视图
SELECT CONCAT("CREATE VIEW ",TABLE_NAME," as ",VIEW_DEFINITION,";") FROM information_schema.VIEWS where table_schema='mytest';
  •  如果是同名库的导出可以用下面的语句
SELECT CONCAT("DROP VIEW IF EXISTS `",TABLE_SCHEMA,"`.`",TABLE_NAME,"`;\nCREATE VIEW `", TABLE_SCHEMA,"`.`",TABLE_NAME,"` as ",VIEW_DEFINITION,";") FROM  information_schema.VIEWS where table_schema='mytest';

2. 导出其他对象

一般情况下,-R  --triggers --events 可以正常导出存储过程、函数、触发器等信息,但是如果创建的时候也写了definer和库名,需要用下面的方式导出。

--查看存储过程
select routine_name,routine_type from information_schema.routines where routine_schema='mytest' and routine_type='PROCEDURE';--查看函数
select routine_name,routine_type from information_schema.routines where routine_schema='mytest' and  routine_type='FUNCTION';--查看触发器
select trigger_name from information_schema.triggers where trigger_schema='mytest';--查看事件
select event_name from information_schema.events where event_schema='mytest';

导出存储过程和函数

SELECT CONCAT("DROP ",TYPE," IF EXISTS `",db,"`.`", NAME,"`;\nDELIMITER ;;\nCREATE ",TYPE," `",db,"`.`",NAME,"`(", param_list,") ",IF ( TYPE = "FUNCTION", CONCAT ("RETURNS ", RETURNS, "\n"),"\n"), body_utf8,";;\nDELIMITER ;") FROM  mysql.proc;

导出触发器

SELECT CONCAT("DROP TRIGGER IF EXISTS `",TRIGGER_SCHEMA, "`.`", TRIGGER_NAME,"`;\nDELIMITER ;;\nCREATE TRIGGER `",TRIGGER_SCHEMA,"`.`",TRIGGER_NAME,"` ",ACTION_TIMING," ",EVENT_MANIPULATION," ON `",EVENT_OBJECT_SCHEMA,"`.`",EVENT_OBJECT_TABLE,"` FOR EACH ROW\n",ACTION_STATEMENT,";;\nDELIMITER ;") FROM information_schema.TRIGGERS;

导出事件

SELECT  CONCAT(   "DROP EVENT IF EXISTS `",   EVENT_SCHEMA,   "`.`",   EVENT_NAME,   "`;\nDELIMITER ;;\nCREATE EVENT `",   EVENT_SCHEMA,   "`.`",   EVENT_NAME,   "` ON SCHEDULE EVERY ",   INTERVAL_VALUE,   " ",   INTERVAL_FIELD,   " STARTS '",   STARTS,"'",   IF ( ENDS <>NULL, CONCAT (" ENDS '",ENDS,"'"),""),     " ON COMPLETION ",   ON_COMPLETION,   " ENABLE DO ",   EVENT_DEFINITION,   ";;\nDELIMITER ;"  ) FROM  information_schema.events;

1.备份数据库
#mysqldump --opt -d 数据库名 -u root -p > xxx.sql 
#mysqldump DB_NAME >数据库备份名 
#mysqldump -A -uUSER_NAME -pPASSWORD DB_NAME>数据库备份名 
#mysqldump -d -A --add-drop-table -uroot -p >xxx.sql 
2.导出结构不导出数据
mysqldump --opt -d 数据库名 -u root -p > xxx.sql
3.导出数据不导出结构
mysqldump -t 数据库名 -uroot -p > xxx.sql
4.导出数据和表结构
mysqldump  -uroot -p 数据库名 > xxx.sql
5.导出特定表的结构
mysqldump -uroot -p -B 数据库名 --table 表名 > xxx.sql
6.导入数据

mysqldump导出的是完整的SQL语句,所以用mysql客户程序就能把数据导入.

#mysql 数据库名 < 文件名 
或者
#source /tmp/xxx.sql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/614841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024美赛数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…

【PaperReading】5. Open-Vocabulary SAM

Category Content 论文题目 Open-Vocabulary SAM: Segment and Recognize Twenty-thousand Classes Interactively 作者 Haobo Yuan1 Xiangtai Li1 Chong Zhou1 Yining Li2 Kai Chen2 Chen Change Loy1 1S-Lab, Nanyang Technological University 2Shanghai Artificial In…

排序之希尔排序

希尔排序&#xff0c;也被称为缩小增量排序&#xff0c;是一种基于插入排序的算法。它通过比较相距一定间隔的元素&#xff0c;来工作&#xff0c;然后再逐渐减小间隔&#xff0c;直到整个数组排序完成。这种算法的主要优点是对于部分有序的数组&#xff0c;其效率非常高&#…

HBase实际应用中常见的问题 解决方案

HBase 是一个分布式的、面向列的开源数据库&#xff0c;通常用于处理大规模数据。在实际应用中&#xff0c;可能会遇到一些常见问题&#xff0c;以下是一些常见问题及其解决方案&#xff1a; 性能问题&#xff1a; 问题&#xff1a;HBase 性能下降&#xff0c;读写延迟增加。…

NLP论文阅读记录 - 05 | 2023 抽象总结与提取总结:实验回顾

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作2.1 提取方法2.2 抽象方法2.3 数据集 三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 Abstractive vs. Extractiv…

【OSG案例详细分析与讲解】之五:【3D交互式动画】

文章目录 一、【3D交互式动画】前言 二、【3D交互式动画】实现效果

ARP协议详解

1、ARP协议的定义 地址解析协议(Address Resolution Protocol&#xff0c;ARP)&#xff1a;ARP协议可以将IPv4地址(一种逻辑地址)转换为各种网络所需的硬件地址(一种物理地址)。换句话说&#xff0c;所谓的地址解析的目标就是发现逻辑地址与物理地址的映射关系。 ARP仅用于IPv…

c++ define 用法

PS&#xff1a;凡是以 # 开头的均为预处理指令&#xff0c;预处理又叫预编译。预编译不是编译&#xff0c;而是编译前的处理。这个操作是在正式编译之前由系统自动完成的。 宏定义 宏定义分为有参和午餐&#xff0c;一般而言无参更多用constexpr代替 无参 #define 标识符 …

代币中的decimal精度代表了什么

精度的意义在于允许发送小数的代币。举例&#xff0c;一个CAT代币合约的精度为6。那么 你拥有1个CAT就意味着合约中的balance 1 * 10^6 , 转账 0.1CAT出去的话&#xff0c;就需要输入 0.1*10^6 10^5。 也就时在涉及代币时&#xff0c;查询到的余额、转账的代币数量 都和 代币…

Sqoop入门指南:安装和配置

Sqoop是一个强大的工具&#xff0c;用于在Hadoop和关系型数据库之间高效传输数据。在本篇文章中&#xff0c;将深入探讨如何安装和配置Sqoop&#xff0c;以及提供详细的示例代码。 安装Java和Hadoop 在开始安装Sqoop之前&#xff0c;首先确保已经成功安装了Java和Hadoop。Sqo…

视频转音频小小代码

前言 特定的场景下&#xff0c;人的需求往往容易变得奇特&#xff0c;比方说&#xff0c;mp4的文件&#xff0c;有时候我只想听声音&#xff0c;而不需要看内容&#xff0c;这个时候把它转换成acc更加节省存储空间&#xff0c;变成了音频带上耳机听就可以了。 那么视频怎么转音…

2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑩

单元测试 一、任务要求 题目1&#xff1a;根据下列流程图编写程序实现相应处理&#xff0c;程序根据两个输入参数iRecordNum和IType计算x的值并返回。编写程序代码&#xff0c;使用JUnit框架编写测试类对编写的程序代码进行测试&#xff0c;测试类中设计最少的测试数据满足基路…

yolov8n 瑞芯微RKNN和地平线Horizon芯片仿真测试部署,部署工程难度小、模型推理速度快

特别说明&#xff1a;参考官方开源的yolov8代码、瑞芯微官方文档、地平线的官方文档&#xff0c;如有侵权告知删&#xff0c;谢谢。 模型和完整仿真测试代码&#xff0c;放在github上参考链接 模型和代码。 因为之前写了几篇yolov8模型部署的博文&#xff0c;存在两个问题&…

全网首发!Yolov8_obb旋转框检测(DOTA1.0数据集)

一、YOLOv8环境搭建 &#xff08;1&#xff09;Pytorch的安装 如果你的环境没有部署请参考本人文章&#xff1a;NLP笔记&#xff08;2&#xff09;——PyTorch的详细安装_安装torchnlp-CSDN博客 &#xff08;2&#xff09;下载最新的Yolov8-obb代码&#xff1a; https://git…

909. 蛇梯棋(图的BFS)

使用广度优先搜索来遍历从1到n*n的可能的路径。 这道题可以看作一个有向图&#xff0c;每个值为x的节点指向x1点节点&#xff0c;在蛇桥处&#xff0c;是从x指向y 注意这里的x、x1、y都是值&#xff0c;可以根据值计算出对应的行列值&#xff0c;计算规则&#xff1a; 假设值…

Redis相关知识点

1.什么是Redis Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对&#xff08;key-value&#xff09;数据库 特征&#xff1a; 1.数据间没有必然的关联关系 2.内部采用单线程机制进行工作 3.高性能&#xff0c;官方提供测试数据&#xff0c;50个…

【修图】AI修图工具

人脸替换 免费的人脸替换工具&#xff1a; Face Swap&#xff1a; https://vmodel.ai/face-swap 支持单人换脸、多人换脸 AI消除 SnapEdit https://snapedit.app/remove-object 不付费的话只能下载清晰度较低的版本 但我试了几个在线的AI消除工具&#xff0c;SnapEdit算是…

回溯算法part06 算法

回溯算法part06 算法 今日任务&#xff1a; ● 51. N皇后 ● 37. 解数独 1.leetcode 51. N皇后 https://leetcode.cn/problems/n-queens/description/ class Solution {//存储结果List<List<String>> resultnew ArrayList<>();public List<List<St…

详细分析Java中的@JsonFormat注解和@DateTimeFormat注解

目录 前言1. JsonFormat注解2. DateTimeFormat注解3. Demo3.1 无注解3.2 有注解 4. 拓展 前言 下文中涉及MybatisPlus的逻辑删除的知识&#xff0c;可看我之前这篇文章&#xff1a;详细讲解MybatisPlus实现逻辑删除 对应的Navicat设置数据库最新时间可看我这篇文章&#xff1…

MySQL、Oracle、PostgreSQL 数据库备份用的 Shell 脚本

文章目录 一、概要二、MySQL 数据库备份与还原异地备份脚本2.1 MySQL 数据库异地备份脚本2.2 MySQL 数据库的恢复 三、Oracle 数据库备份与还原脚本3.1 Oracle 数据库异地备份脚本3.2 Oracle 数据库的恢复 四、PostgreSQL 数据库异地备份与还原脚本4.1 PostgreSQL 数据库备份脚…