iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysqlimport如何排查导入报错问题
  • 925
分享到

mysqlimport如何排查导入报错问题

2024-04-02 19:04:59 925人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关Mysqlimport如何排查导入报错问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 之前有个同事问我一个mysqli

这篇文章给大家分享的是有关Mysqlimport如何排查导入报错问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

之前有个同事问我一个mysqlimport导入的问题,看起来还是蛮奇怪的。同事在客户端导入一个文件。文件大小是2.8G,然后报错mysqlimport: Error: 2013, Lost connection to MySQL Server during query
对于这个问题我的第一感觉是一台云服务器,是不是没有配置swap造成的原因,因为在之前的一次迁移中,被这类问题折磨坏了,遭遇了OOM-Killer的问题,最后发现是swap没有配置导致的。
但是同事经过确认,这是一台实体机,而且查看硬件情况,配置还不错。buffer_pool_size有50多G,swap也配置了。看来这个问题的原因初步排除了。
对于这个问题,网络上也有很多种说法。有的说是max_allowed_packets导致。查看当前的配置是1G,看起来是比导入文件小了。
不过从oracle中的经验来看,似乎这个说法也不是完全靠得住的,如果我导入一个100G的dump,那这个参数还要配置超过100G,好像听起来也不大合理啊。而且也没见过有环境配置一个极高的值。
为此我做了几个简单的测试
首先找了一个测试环境,max_allowed_packets为30多M.
# mysqladmin var|grep max_all
| max_allowed_packet                                | 33554432
| slave_max_allowed_packet                          | 1073741824
定了一个小表.
]> select count(*)from t_fund_info;
+----------+
| count(*) |
+----------+
|  1998067 |
通过查看文件大小,大概是400多M.
-rw-rw---- 1 mysql mysql  482344960 Oct 13 16:01 t_fund_info.ibd
这样就可以轻松模拟测试max_allowed_packets的场景了。
首先导出文件。
> select * from t_fund_info into outfile '/tmp/t_fund_info.txt';
Query OK, 1998067 rows affected (6.82 sec)
导出的文本文件有近300M
ll t_fund_info.txt
-rw-rw-rw- 1 mysql mysql 291963062 Oct 20 22:25 t_fund_info.txt

然后使用最简单的命令来导入:
mysqlimport  test '/tmp/t_fund_info.txt'
短暂的等待之后,成功导入。
可以看到慢日志的输出如下:
# Time: 161020 22:31:49
# User@Host: root[root] @ localhost []
# Thread_id: 4321910  Schema: test  Last_errno: 0  Killed: 0
# Query_time: 92.866443  Lock_time: 0.000074  Rows_sent: 0  Rows_examined: 0  Rows_affected: 1998067  Rows_read: 0
# Bytes_sent: 68
SET timestamp=1476973909;
LOAD DATA   INFILE '/tmp/t_fund_info.txt' INTO TABLE `t_fund_info` IGNORE 0 LINES;
原来mysqlimport会转换为load data 的形式。
然后delete,truncate,drop重建,都可以成功导入。
是哪里测试的不到位吗,我开始审视这个问题,我们可以在测试环境中模拟这个问题,以当时出问题的数据为准。然后查看同事提供的日志和截图,发现当时使用的命令是
mysqlimport  test '/tmp/t_charextra.txt' --local --delete --default-character=gbk
这个表的字符集经过确认是latin,所以就在怀疑是不是因为字符集转换造成的
ENGINE=InnoDB DEFAULT CHARSET=latin1
但是短暂的等待之后,还是可以成功导入。
# mysqlimport  test '/tmp/t_charextra.txt' --local --delete --default-character=gbk
test.t_charextra: Records: 480174  Deleted: 0  Skipped: 0  Warnings: 0
在表t_charextra存在大量数据的前提下,我们继续尝试上面的方法导入。
整个导入就会分为两部分,
SET timestamp=1476975647;
DELETE FROM t_charextra

SET timestamp=1476975748;
LOAD DATA  LOCAL INFILE '/tmp/t_charextra.txt' INTO TABLE `t_charextra` IGNORE 0 LINES;
还是能够成功导入
# mysqlimport  test '/tmp/t_charextra.txt' --local --delete --default-character=gbk
test.t_charextra: Records: 480174  Deleted: 0  Skipped: 0  Warnings: 0    
是哪里测试的不到位吗,现在唯一能够想到的就是两点,一是通过客户端调用,而是客户端和服务端的网络延迟较大。
配置了客户端用户,把导出的文本拷贝到客户端来复现问题。
> grant select,insert,delete on test.*  to testdb@10.127.133.86 identified by 'mysqlnew';
Query OK, 0 rows affected (0.02 sec)
然后使用下面的命令来尝试客户端导入。
# mysqlimport -h 10.127.xxxx -utestdb -pmysqlnew test '/U01/t_charextra.txt' --local --delete --default-character=gbk
Warning: Using unique option prefix default-character instead of default-character-set is deprecated and will be removed in a future release. Please use the full name instead.
test.t_charextra: Records: 480174  Deleted: 0  Skipped: 0  Warnings: 0
从日志看除了抛出一个警告外,一切都很正常,所以现在的重点就落在了网络上,这一点还是需要进一步确认,不过目前来看已经排除了不少原因,想必原因也快揭晓了。

感谢各位的阅读!关于“mysqlimport如何排查导入报错问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

您可能感兴趣的文档:

--结束END--

本文标题: mysqlimport如何排查导入报错问题

本文链接: https://www.lsjlt.com/news/62332.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysqlimport如何排查导入报错问题
    这篇文章给大家分享的是有关mysqlimport如何排查导入报错问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 之前有个同事问我一个mysqli...
    99+
    2024-04-02
  • mysqlimport导入数据报错怎么办
    这篇文章主要介绍“mysqlimport导入数据报错怎么办”,在日常操作中,相信很多人在mysqlimport导入数据报错怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • mysqlimport如何实现导入
    这篇文章给大家分享的是有关mysqlimport如何实现导入的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1    创建一个文...
    99+
    2024-04-02
  • 如何排查rocketmq错误迁移导致的问题
    小编给大家分享一下如何排查rocketmq错误迁移导致的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!  由于测试环境机器老化,导致测试环境rocketmq集群有台机器关机了(那台机器有一个namesrv、一个mast...
    99+
    2023-06-04
  • 如何解决navicat导入Excel报错的问题
    这篇文章将为大家详细讲解有关如何解决navicat导入Excel报错的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近刚安装完navicat ,准备导入工作数据进去...
    99+
    2024-04-02
  • buildcheck包报错问题排查解决
    目录问题原因解决方法一方法二方法三方法四总结问题 最近项目开发中遇到 buildcheck 包抛错,因修复该报错占用了一点时间,特此这里记录下。 因项目本地部署需要上传打包文件,使...
    99+
    2023-02-09
    buildcheck包报错排查 buildcheck包报错
  • 如何解决navicat导入sql报错1265的问题
    这篇文章将为大家详细讲解有关如何解决navicat导入sql报错1265的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在使用MySQL写数据库表格的时候,出现崩溃。...
    99+
    2024-04-02
  • 如何使用mysqlimport导入数据到mysql
    这篇文章将为大家详细讲解有关如何使用mysqlimport导入数据到mysql,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、准备导入数据[root@D2-LZY245...
    99+
    2024-04-02
  • 如何解决mysql命令行导入数据报错的问题
    小编给大家分享一下如何解决mysql命令行导入数据报错的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql命令行导入数...
    99+
    2024-04-02
  • 关于一个SFTP问题报错排查过程
    一、问题背景 📓问题概述 日常运维工单为用户在文件服务器上建立账户之后,用户反馈登录报错;通过相邻网段服务器进行sftp登录报错如下: 百度一下过去经验,通过重启sshd服务和检查sshd_config配置都没问题。一筹莫...
    99+
    2023-09-15
    服务器 java 网络
  • maven依赖问题如何排查
    在排查Maven依赖问题时,可以尝试以下几个步骤:1. 检查pom.xml文件:首先检查项目的pom.xml文件,确保依赖项正确地被...
    99+
    2023-09-17
    maven
  • linux中如何排查Java问题
    小编给大家分享一下linux中如何排查Java问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux命令类tail最常用的tail -fgrepawk1 基...
    99+
    2023-06-16
  • nginx 配置报404 问题排查
    大家好,我是小马,今天遇到一个问题,问题是这样的,我们开发了一个对接项目,我们会给对接方一个通知的url,以通知我们订单的变更,但是我们给的通知url是线上的,测试环境的配置并没有给对方,并且对方没有测试环境,所以只能用线上测试。 我们代码...
    99+
    2023-08-31
    nginx 运维 java
  • 关于Python包导入报错的问题总结
    目录错误记录总结首先,一般来说,写一个小demo可能一个文件就够了,但是要是做一个小项目,可能需要拆分成很多零散的文件,放在不同的文件夹里面调用,这个就称之为模块(包),Python...
    99+
    2023-02-17
    Python包导入 Python包导入报错 Py包导入报错
  • mongo慢查询问题如何排查处理
    这篇文章主要介绍了mongo慢查询问题如何排查处理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mongo慢查询问题如何排查处理文章都会有所收获,下面我们一起来看看吧。一、简单介绍mongo语句查询条件中出现n...
    99+
    2023-06-29
  • kubernetes k8s常用问题如何排查
    这篇文章主要介绍了kubernetes k8s常用问题如何排查的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇kubernetes k8s常用问题如何排查文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-02
  • 如何进行Flink Checkpoint问题排查
    这篇文章给大家介绍如何进行Flink Checkpoint问题排查,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在 Flink 中,状态可靠性保证由 Checkpoint 支持,当作业...
    99+
    2024-04-02
  • 调试排错 - Java 问题排查之Linux命令
    Java 在线问题排查主要分两篇:本文是第一篇,通过linux常用命令排查。@pdai调试排错 - Java 问题排查之Linux命令文本操作文本查找 - grep文本分析 - awk文本处理 - sed文件操作文件监听 - tail文件查...
    99+
    2022-12-02
    java框架 java全栈 java学习路线 java全栈知识 java面试 知识体系 java技术体系 java编程
  • 调试排错 - Java 问题排查之工具单
    Java 在线问题排查主要分两篇:本文是第二篇,通过java调试/排查工具进行问题定位。@pdai调试排错 - Java 问题排查之工具单Java 调试入门工具jpsjstackjinfojmapjstatjdbCHLSDBJava 调试进...
    99+
    2022-12-02
    java框架 java全栈 java学习路线 java全栈知识 java面试 知识体系 java技术体系 java编程
  • 如何解决navicat导入sql文件出错的问题
    这篇文章主要介绍了如何解决navicat导入sql文件出错的问题,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。在一个工程中数据库往往要分为实际运...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作