java 导出mysql数据库表数据,命令行导出表数据数据缺失

本文介绍了一种在使用mysqldump进行数据库备份时遇到的数据丢失问题及其解决方案。问题源于多行插入语法在遇到主键重复错误后停止执行,通过添加--extended-insert=false参数解决了这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Process process = Runtime.getRuntime().exec(mysqlpath+"mysqldump  -h" + hostIP + " -u" + userName + " -p" + password + " --set-charset=UTF8 " + databaseName+" --tables "+backupTables);

即命令 mysqldump  -hlocalhost -uroot -proot  --set-charset=UTF8 dataBase  --tables  test_table1 test_table2>D:\\db.sql命令

导出的时候可能因为一些表的外键问题或key值问题导致导出成功但是数据丢失的问题,找了很久没找到问题,偶然间看到一篇博客说是一些导出的注意事项:insert语句采用是multiline insert synax.而不是采用single insert synax.原来是这个问题. 多行的插入语法在第一个主健重复错误后就不执行后续的对应表的插入语句了.
于是再加参数 --extended-insert=false,完整的命令是

mysqldump  --extended-insert=false -hlocalhost -uroot -proot  --set-charset=UTF8 dataBase  --tables  test_table1 test_table2>D:\\db.sql

objk!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值