导出数据

今天从Mysql的某个库中导出一个表大概有20分钟吧,等了一会终于导出成功了。查看一下文件的大小:

[tidb@:vg_adn_CkhsTest ~]$du -h ./creative_output.sql
41G ./creative_output.sql

这个文件是相当大的,有41G左右。

导出的命令很简单:mysqldump -hhost  -uname -ppwd   表名 >   xxx.sql

就这样就导出来的,我们只需要等结果就可以。

如果我们想导出一个数据库,那就要使用:mysqldump -hhost  -uname -ppwd   --database  库名  >   xxx.sql。也就是说多加了一个参数。

导入数据

使用mysqldump导出的数据,我们打开查看一下会发现是含有表结构的,并不是说像Csv那样的纯文本数据,因此使用source命令到导入数据即可。

由于本人搞混了几个备份和恢复数据的命令,导致本来就很快搞定的事情,花了几个小时。虽然踩了不少坑,但还是有收获的。

注意:mysqldump导出的数据是含有表结构的数据,除此之外还含有mysql的一些状态参数等。并不是纯文本数据。所以这里我一开始使用了load  data命令来导入数据,发现总是出错的。且先不说load  data命令的参数挺多的。

使用load  data参数导入数据的时候,要确认一下导入的文件是不是纯文本文件,load  data只适合导入一下类似与csv类型的文本。这种类型的文本只有数据,所以你要先创建好数据库后还要创建好表的结构,我这次就是又去尝试创建表结构后去导入数据,在这个过程中其中我心里面就觉得怪怪的,因为我之前也做过对表的备份,那个时候我并没有建表,而是直接将表导入数据库就可以了,但是怎么导入的我就是想不起来。后来去网上查找一下发现有个load  data命令可以导入,所以我就一直在踩坑。一直在load  data命令里面错误循环。

所以在这里纠正一下,mysqldump导出的数据使用mysql命令(客户端未登录数据库)或者source命令(客户端链接mysql后)来导入数据。

1、首先出现错误:

# mysqlimport -uabc -p'' -h db1 -P  DB a.txt
mysqlimport: Error: , The MySQL server is running with the --secure-file-priv option so it cannot execute this statement, when using table:

是因为mysql限制了导入数据的目录,修改一下就可以了。

我们来查看--secure-file-priv参数

> show global variables like 'secure_file_priv';
+------------------+-----------+
| Variable_name | Value |
+------------------+-----------+
| secure_file_priv | /dev/null |
+------------------+-----------|

此参数不是动态参数。需要添加配置文件,重启服务才可以生效。

1)不限制导入导出

# cat /etc/my.cnf
[mysqld]
secure_file_priv = ""

2)限制在特定目录下

# cat /etc/my.cnf
[mysqld]
secure_file_priv = /tmp

--只允许/tmp目录下的数据文件可以导入,其他目录下的文件没有权限导入。

2、在load data的时候,也出现了一些错误:比如:

>load  data .........................
error(2013):Lost connection to MySQL server during query

像这种错误就是客户端连接mysql数据库延时的错误。再深入一点就是说sql语句操作的时间过长,查询或导入的语句过大导致的。

我们可以这样子做:

先查看max_allowed_packet的值是多少:

show VARIABLES like '%max_allowed_packet%'; 

如果你觉得比较小,那么在mysql客户端中对max_allowed_packet等几项设置较大的值。以KB为单位

比如:

set global max_allowed_packet = 50000000

set global wait_timeout=2880000
set global interactive_timeout = 2880000

这三个中我们要先设置第一个,先把第一个设置的值大一点,上面的这个例子是我已经设置过了,你的查出来可能不会有这么大,因为我的文件就是40多个G ,因此我设置成了50G的大小,一般根据文件大小来设置。

如果第一个设置了之后还是出现同样的问题,那就把剩下的两个值也设置的大一点。注意:我上面是自己已经设置的比较大。

最后,你设置完之后要退出客户端重新连接一下才会生效(并不是重启mysql数据库),再次连接之后你会发现这个值就变成了你修改的那个值。不过重启过mysql之后这个值就会重新还原,因此如果你想要永久生效,最好在配置文件中添加这三个参数。

对我来说,本来导入的数据就不应该使用load  data命令来导入,出现了上面的情况,因此修改了参数还是没有解决,而且,我的系统报错非常快,就是当你执行load  data命令后,马上返回错误,这一点大家要注意,根本就没有超过延迟时间可就报错了,这本身就很可疑。

本次实验额参考了两位博主:

https://blog.csdn.net/lovemysea/article/details/79121154

https://www.aliyun.com/jiaocheng/1125866.html

参考连接:http://blog.51cto.com/11580138/1931925

记录一次向TiDB数据库导入数据的例子的更多相关文章

  1. Tidb数据库导入数据出现oom问题

    今天使用insert操作向tidb中插入数据,发现正在导入的过程中出现如下错误: mysql: [Warning] Using a password on the command line inter ...

  2. Sqlserver 2005 跨数据库 导入数据

    --Sqlserver 2005 跨数据库 导入数据:--SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/O ...

  3. 在C#应用程序中,利用表值参数过滤重复,批量向数据库导入数据,并且返回重复数据

    在很多情况下,应用程序都需要实现excel数据导入功能,数据如果只有几十条,或上百条,甚至上千条,速度还好. 但是不仅如此,如果客户提供给你的excel本身存在着重复数据,或是excel中的某些数据已 ...

  4. MYSQL数据库导入数据时出现乱码的解决办法

    我的一个网站在负载搞不定的情况下最终选择了数据库和程序分离的方式解决的高负载,但是再导入数据的时候出现了大量乱码,最终通过方法二解决掉导入数据的问题,后面再设计网站布局的时候数据库跟网站程序分离是个很 ...

  5. solr8.0 从数据库导入数据(三)

    第一步:导入相关包: 在创建的核心目录下新建lib文件夹(如果有,无需建立),从Solr源码包的dist文件夹中导入两个solr-dataimporthandler包,以及一个mysql驱动包. 第二 ...

  6. Oracle 数据库导入数据和编码问题

    配置 control 文件: load data characterset utf8 append into table role_res_gold fields terminated by ';' ...

  7. 【转】Solr从数据库导入数据(DIH)

    本文转自:http://blog.csdn.net/xiaoyu714543065/article/details/11849115 一. 数据导入(DataImportHandler-DIH) DI ...

  8. Loading Data into a Table;MySQL从本地向数据库导入数据

    在localhost中准备好了一个test数据库和一个pet表: mysql> SHOW DATABASES; +--------------------+ | Database | +---- ...

  9. MySQL从本地向数据库导入数据

    本文来自:https://www.cnblogs.com/lettuce-u/p/10715795.html(自己收藏看) 在localhost中准备好了一个test数据库和一个pet表: mysql ...

随机推荐

  1. Hibernate杂问

    1 谈谈你对ORM框架的基本思想的了解? 首先 ORM是 对象关系映射,是为了解决类似于JDBC实现对象持久化的问题开发的. 框架的基本特征:完成面向对象的编程语言到关系数据库之间的映射. 他的映射分 ...

  2. GoogLeNetv3 论文研读笔记

    Rethinking the Inception Architecture for Computer Vision 原文链接 摘要 卷积网络是目前最新的计算机视觉解决方案的核心,对于大多数任务而言,虽 ...

  3. .38-浅析webpack源码之读取babel-loader并转换js文件

    经过非常非常长无聊的流程,只是将获取到的module信息做了一些缓存,然后生成了loaderContext对象. 这里上个图整理一下这节的流程: 这一节来看webpack是如何将babel-loade ...

  4. [转]一分钟告诉你究竟DevOps是什么鬼?

    本文转自:https://www.cnblogs.com/jetzhang/p/6068773.html 一分钟告诉你究竟DevOps是什么鬼?   历史回顾 为了能够更好的理解什么是DevOps,我 ...

  5. JS DOM操作(二) Window.docunment对象——操作样式

    一 对元素的定位 在 js 中可以利用 id.class.name.标签名进行元素的定位 id.class  用在客户端 name  用在服务端 用 id 定位                  -- ...

  6. 纯js实现文件下载并重命名功能

    直接记录代码: /** * 获取 blob * @param {String} url 目标文件地址 * @return {cb} */ function getBlob(url,cb) { var ...

  7. [日常] Go语言圣经-错误,函数值习题

    Go语言圣经-错误 1.panic异常.panic是来自被调函数的信号,表示发生了某个已知的bug 2.任何进行I/O操作的函数都会面临出现错误的可能 3.错误是软件包API和应用程序用户界面的一个重 ...

  8. 临时表 on commit delete rows 与 on commit preserve rows 的区别

    -- 事务级临时表:提交时删除数据 create global temporary  table tmp_table1 (        x     number ) on commit delete ...

  9. DOM基础练习代码(二)

    上一篇给大家的三段代码不知到大家有没有练习呢?今天再给大家带来两段DOM的练习! 4.封装函数,实现children功能,最好哎原型链上编程 Element.prototype.getChildren ...

  10. 洛谷P4198 楼房重建(线段树)

    题意 题目链接 Sol 别问我为什么发两遍 就是为了骗访问量 这个题的线段树做法,,妙的很 首先一个显然的结论:位置\(i\)能被看到当且仅当\(\frac{H_k}{k} < \frac{H_ ...