mysqldump segmentation fault on large--where=(id in…)

cunj1qz1  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(700)

我在使用mysqldump和large--where=(id in…)时遇到了一个分段错误。

mysqldump --verbose --host=myhost --user=myuser -ppass mydb mytable --insert-ignore --no-create-info --where="id IN (6162591,5796486,5796495,6162586, ...)"

结果

-- Connecting to mydb...
-- MySQL dump 10.13  Distrib 5.5.60, for debian-linux-gnu (x86_64)
--
-- Host: myhost    Database: mydb
-- ------------------------------------------------------
-- Server version       5.5.60-0+deb8u1-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES latin1 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-- Retrieving table structure for table flash_images...
-- Sending SELECT query...

--
-- Dumping data for table `mytable`
--
<!-- - WHERE:  id IN (6162591,5796486,5796495,...,4 -->
Segmentation fault

我的名单上有732个身份证。400也失败了。与200一起工作。
我试过了 --skip-quick 强制内存缓冲区和 --skip-extended-insert ,它也失败了。
有人知道可能是什么错误吗?
谢谢您。

xghobddn

xghobddn1#

在10.13版本中,它确实是一个mysqldump错误。
我编写了一个脚本,将id列表分成200个批次,这个解决方案可以工作。

相关问题