Java程序实现mysql数据库导出,命令执行成功了,可是导出的文件是空的,求解!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java程序实现mysql数据库导出,命令执行成功了,可是导出的文件是空的,求解!相关的知识,希望对你有一定的参考价值。

代码如下:String mysql="cmd /k mysqldump -u root -proot --opt mysql > C:/Users/success/ak.sql ";
java.lang.Runtime.getRuntime().exec("mysql");
执行后生成了,生成了ak.sql文件但是是空的。如果在CMD下直接执行 mysqldump -u root -proot --opt mysql > C:/Users/success/ak.sql 就可以生成有内容的ak.sql,求高手帮忙!

参考技术A 应该是一些特殊符被转义了,你可以把mysqldump -u root -proot --opt mysql > C:/Users/success/ak.sql 这句写到一个bat文件里面,然后java中就直接调用这个bat文件就可以避免了追问

java里面怎么执行项目目录里的bat啊? 我写了个a.bat 放在项目的同级目录下,可是执行
String command = "cmd /k a.bat";
Process child = Runtime.getRuntime().exec(command);
child.waitFor();
并没有执行a.bat

追答

留Q,搞定睡觉了

追问

QQ:2579079477 拜托了

本回答被提问者采纳
参考技术B cmd /c mysqldump -u root -proot --opt mysql > C:/Users/success/ak.sql

这样试一下,
再一个,
java.lang.Runtime.getRuntime().exec("mysql");

这个是你手误?应该是mysql不应该是"mysql"
参考技术C Java runtime每次只能执行一条command命令,重定向是不支持的,可以用mysqldump的--result-file="输出文件",避免使用重定向符号>,可以解决你的问题

CDM命令实现MySql数据库文件的导出导入

1.首先进入MySQL的安装目录,找到Bin文件夹,我这里安装的目录是C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin ,进入该文件夹后在空白处按下Shift键+右键,即可看在此处打开命令窗口的选项,点击后出现命令窗口   技术图片

 

 2.导出sql文件

  出现命令行后输入 : mysqldump -u root -pq791469353 officialwebsite > a.sql 即可导出a.sql文件在bin目录中,说明: root 为数据库用户名 -p加数据库密码(我这里密码是q791469353)officialwebsite 为数据库名 > a.sql为导出的数据库名,这里以  .sql 结尾

       技术图片

 

 

 

 3.导入sql文件

  重复步骤1,我这里假定存在了以officialwebsite命名的数据库,在弹出命令窗口后输入:mysql -uroot -pq791469353

  说明:-u后面是MySQL数据库用户名 -p后面是数据库的密码 

  接着输入  show databases; 

   显示出数据库结构后,输入 use officialwebsite 说明:这里表示使用数据库 officialwebsite 这里根据个人情况修改

  接着输入 source d:DB/a.sql 说明:source + 文件的绝对路径

  

以上是关于Java程序实现mysql数据库导出,命令执行成功了,可是导出的文件是空的,求解!的主要内容,如果未能解决你的问题,请参考以下文章

mysql dump备份不成功

如何利用phpmyadmin导入和导出mysql数据库

PLSQL Developer 怎么导出sql文件

MySQL字符串未在Java中执行[重复]

怎样将MySQL数据导出到Excel表中

windows计划任务执行mysqldump大数据表不成功小数据表没问题