java的mysql数据库还原问题

itkai 2013-09-09 03:11:42

在执行下还原数据库代码时,可以建立数据库,但是不能还原数据。
public static void load(String fileName) throws Exception {
String username = "root";
String password = "root3306";
String mysqlpath = "D:\\DeveloperTools\\MySQL\\MySQL Server 5.6\\bin\\";
String databaseName = "nasystem";
String address = "localhost";
String sqlpath = "D:\\";
// 建立数据库
String createDatabase = mysqlpath + "mysqladmin -u" + username + " -p"
+ password + " create " + databaseName;
// 还原数据库数据
String loadData = mysqlpath + "mysql -h " + address + " -u"
+ username + " -p" + password + " " + databaseName + " < "
+ sqlpath + fileName;

System.out.println("建立数据库:" + createDatabase);
System.out.println("还原数据:" + loadData);

Runtime r = Runtime.getRuntime();
r.exec(createDatabase);
r.exec(loadData);
}


两个打印为:
1.建立数据库:D:\DeveloperTools\MySQL\MySQL Server 5.6\bin\mysqladmin -uroot -proot3306 create nasystem
2.还原数据:D:\DeveloperTools\MySQL\MySQL Server 5.6\bin\mysql -h localhost -uroot -proot3306 nasystem < D:\nasystem.sql

问题:
doc命令里在mysql的bin目录下使用:【mysql -h localhost -uroot -proot3306 nasystem < D:\nasystem.sql】命令可以正常还原备份的数据,但在程序里不能实现数据还原,请大家帮忙看下。谢谢。
...全文
145 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2013-09-09
  • 打赏
  • 举报
回复
跟同步问题无关,Runtime所执行程序,如果需要输出大量信息到console上,而又没有被处理掉的情况下,输出缓冲区会因为占满而被阻塞,那么程序就不再执行下去了。 相当于卡死在:System.out.println()这种信息输出语句上。 让你解决 getInputStream() 和 getErrorStream(),就是要实时处理掉所执行进程的输出信息;因为你这里没什么压力,所以另外开线程专门进行处理。
itkai 2013-09-09
  • 打赏
  • 举报
回复
引用 1 楼 ldh911 的回复:
要同步处理 Runtime 的 getInputStream() 和 getErrorStream(),并看看里面的内容。
可以先不考虑同步的问题吧?这里是我自己写的程序,现在只有我在执行。比较想先解决现在遇到的问题。帮看下。谢谢。
MiceRice 2013-09-09
  • 打赏
  • 举报
回复
要同步处理 Runtime 的 getInputStream() 和 getErrorStream(),并看看里面的内容。

50,542

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧