当前位置: 首页 > article >正文

mysqldump导数报错error 2008处理办法

mysqldump导数报错error 2008处理办法

mysqldump导出dump文件时收到MySQL客户端从服务器获取数据时内存耗尽的报错。

🍌报错信息:

mysqldump: Out of memory (Needed 2356236304 bytes)
mysqldump: Got error: 2008: MySQL client ran out of memory when retrieving data from server

🐐可能原因:

单次导出的表行数太多,超过了mysql客户端的内存限制(可能是max_allowed_packet参数,默认256M)。

🐯解决办法:

mysqldump命令加上--single-transaction --skip-opt --extended-insert --quick参数。
也可以单独加上--opt参数,但是生产环境不建议,因为会锁表。

如果需要忽略包含特定字符的表,使用多个--ignore-table参数指定。

导出DBNAME库中的所有表,但不包括TABLE_1和TABLE_2:

mysqldump -h127.0.0.1 -P3306 -uroot --set-gtid-purged=OFF \
--single-transaction --skip-opt --add-drop-database --extended-insert --quick \
--ignore-table=DBNAME.TABLE_1 --ignore-table=DBNAME.TABLE_2 \
-B DBNAME > dump_DBNAME_`date +%F`.sql

拼接表名清单:

select group_concat(concat_ws('.',table_schema,table_name) separator ' --ignore-table=') 
as not_need_table_list
from information_schema.tables
where table_schema = 'DBNAME' and table_name like '%2023%'\G

📖 重要参数含义官方解释:

  • –opt
    This option, enabled by default, is shorthand for the combination of --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset. It gives a fast dump operation and produces a dump file that can be reloaded into a MySQL server quickly.
    Because the --opt option is enabled by default, you only specify its converse, the --skip-opt to turn off several default settings. See the discussion of mysqldump option groups for information about selectively enabling or disabling a subset of the options affected by --opt.

  • –quick
    This option is useful for dumping large tables. It forces mysqldump to retrieve rows for a table from the server a row at a time rather than retrieving the entire row set and buffering it in memory before writing it out.

  • –extended-insert
    Write INSERT statements using multiple-row syntax that includes several VALUES lists. This results in a smaller dump file and speeds up inserts when the file is reloaded.

References
[1] https://dba.stackexchange.com/questions/157649/outofmemory-exception-duing-mysqldump
[2] https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_opt
[3] https://mp.weixin.qq.com/s?__biz=MzI2NzM1OTM4OA==&mid=2247496679&idx=1&sn=bc9391542d1b42c64e1d49632c4cf969&chksm=ea82b614ddf53f0225e2f7249f907f46552283bdb1970d5b340fc94ed9a72638044444542811&scene=27


http://www.kler.cn/a/227421.html

相关文章:

  • Python—数据可视化Seaborn大全:参数详解与实战案例全解析【第52篇—python:Seaborn大全】
  • 螺旋形迷宫(c++题解)
  • C语言实现跳表(附源码)
  • LabVIEW叶片厚度远程监控
  • MATLAB计算多边形质心/矩心
  • C语言常见面试题:C语言中如何进行数据库编程?
  • Java希尔排序
  • 离线数仓-数据治理
  • C++ //练习 4.2 根据4.12节中的表,在下述表达式的合理位置添加括号,使得添加括号后运算对象的组合顺序与添加括号前一致。
  • 2023年最受欢迎的4款绘图软件全面评测!
  • Hadoop生态系统中一些关键组件的详细解析
  • 如何选择Centos的替代者
  • GO EASY 框架 之 NET 05
  • 【数据结构】二叉树链式结构的实现
  • 明天是几号(c++题解)
  • scoped样式隔离原理
  • springboot在线文档的集成方式
  • MaxKey 单点登录认证系统——登录验证流程分析
  • LeAPI 后端接口开发 - 发布、下线接口
  • 正点原子--STM32定时器学习笔记(2)