Java中CMD命令来备份mysql数据库备份文件出来为0字节问题

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Java中CMD命令来备份mysql数据库备份文件出来为0字节问题
Java中CMD命令来备份mysql数据库备份文件出来为0字节问题
https://blog.csdn.net/qq_36936155/article/details/78978242
今天客户打电话来说我们的系统备份的sql文件为空文件。
这让我很凌乱,我们测试过滴,执行很成功嘛。
可客户使用的时候确实是备份失败嘛 ,这是事实。
我东测试西测试,在本机咋滴还是没出现这样的问题;
没办法装了个虚拟机,安装了和客户一样的操作系统 ,并且按照客户安装步骤进行部署。
结果,神奇事情出现了,所备份的数据库文件确实是空的,最后是东找西找,又是百度又是谷歌的,还是没有解决。
后来我一想,mysql的安装路径不一样,我都喜欢把软件工具都安装在C盘以外,自定义的安装路径,而客户是安装在默认的Program Files下面,
而文件夹有空格的名称的经常会致使一些莫名其妙的问题出现。
想到就做,我将mysql bin目录下的mysqldump复制放到c盘,并且把系统语句改为
Runtime rt = Runtime.getRuntime();
rt.exec("cmd /c c:\\mysqldump -hlocalhost -uroot -p123456 --opt databaseName>d:\\bk.sql");
居然成功了,文件不再是0KB的空文件。自此,问题解决。
罪魁祸首是Program Files文件夹的空字符串,不知道当初微软为啥要在中间加个空格。
我项目的解决方案就是(项目 fhadmin.cn):
1、将mysqldump.exe复制放到我的项目文件夹下
2、执行备份时,先得到项目部署路径,然后执行 
Runtime rt = Runtime.getRuntime();
String path = 获取mysqldump所在路径。 
rt.exec("cmd /c "+path+"\\mysqldump -hlocalhost -uroot -p123456 --opt databaseName>d:\\bk.sql"); 
3、前提是让客户部署时,别将项目部署在含有空格的文件夹下面。
记录下问题的解决方法以供参考。 
今天客户打电话来说我们的系统备份的sql文件为空文件。
这让我很凌乱,我们测试过滴,执行很成功嘛。
可客户使用的时候确实是备份失败嘛 ,这是事实。
我东测试西测试,在本机咋滴还是没出现这样的问题;
没办法装了个虚拟机,安装了和客户一样的操作系统 ,并且按照客户安装步骤进行部署。
结果,神奇事情出现了,所备份的数据库文件确实是空的,最后是东找西找,又是百度又是谷歌的,还是没有解决。
后来我一想,mysql的安装路径不一样,我都喜欢把软件工具都安装在C盘以外,自定义的安装路径,而客户是安装在默认的Program Files下面,
而文件夹有空格的名称的经常会致使一些莫名其妙的问题出现。
想到就做,我将mysql bin目录下的mysqldump复制放到c盘,并且把系统语句改为
Runtime rt = Runtime.getRuntime();
rt.exec("cmd /c c:\\mysqldump -hlocalhost -uroot -p123456 --opt databaseName>d:\\bk.sql");
居然成功了,文件不再是0KB的空文件。自此,问题解决。
罪魁祸首是Program Files文件夹的空字符串,不知道当初微软为啥要在中间加个空格。
我项目的解决方案就是:
1、将mysqldump.exe复制放到我的项目文件夹下
2、执行备份时,先得到项目部署路径,然后执行 
Runtime rt = Runtime.getRuntime();
String path = 获取mysqldump所在路径。 
rt.exec("cmd /c "+path+"\\mysqldump -hlocalhost -uroot -p123456 --opt databaseName>d:\\bk.sql"); 
3、前提是让客户部署时,别将项目部署在含有空格的文件夹下面。
记录下问题的解决方法以供参考。

 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
3月前
|
关系型数据库 MySQL Java
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
|
3月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
|
3月前
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
191 0
|
3月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
204 14
|
4月前
|
SQL 关系型数据库 MySQL
MySQL 5.6/5.7 DDL 失败残留文件清理指南
通过本文的指南,您可以更安全地处理 MySQL 5.6 和 5.7 版本中 DDL 失败后的残留文件,有效避免数据丢失和数据库不一致的问题。
|
4月前
|
存储 Java 数据安全/隐私保护
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
333 5
|
4月前
|
网络协议 安全 Java
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
253 0
|
5月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
6月前
|
Java 关系型数据库 MySQL
Java汽车租赁系统源码(含数据库脚本)
Java汽车租赁系统源码(含数据库脚本)
108 4
|
6月前
|
安全 关系型数据库 MySQL
MySQL8使用物理文件恢复MyISAM表测试
MySQL8使用物理文件恢复MyISAM表测试
91 0

热门文章

最新文章

推荐镜像

更多