javamysql备份为0的简单介绍

本文目录一览:

java mysql备份数据库数据问题

很正常啊。。。因为你打印的也只是cmd输出的数据而已。。。

而mysqldump -uroot -p1234 -hhostlocal 数据库名 D:/bak/jxc.sql ;不返回信息到

cmd上。。只是在规定目录下生成sql文件而已。。你如果真的想知道备份的信息的话

在cmd执行成功后用输入流直接读取D:/bak/jxc.sql不就行了。。。

怎么用java备份mysql数据库?

首先,设置mysql的环境变量(在path中添加%MYSQL_HOME%\bin),重启电脑。

完整代码:

备份:

public static void main(String[] args) {

backup();

load();

}

public static void backup() {

try {

Runtime rt = Runtime.getRuntime();

// 调用 mysql 的 cmd:

Process child = rt

.exec(“mysqldump -u root –set-charset=utf8 bjse act_obj”);// 设置导出编码为utf8。这里必须是utf8

// 把进程执行中的控制台输出信息写入.sql文件,即生成了备份文件。注:如果不对控制台信息进行读出,则会导致进程堵塞无法运行

InputStream in = child.getInputStream();// 控制台的输出信息作为输入流

InputStreamReader xx = new InputStreamReader(in, “utf8”);// 设置输出流编码为utf8。这里必须是utf8,否则从流中读入的是乱码

String inStr;

StringBuffer sb = new StringBuffer(“”);

String outStr;

// 组合控制台输出信息字符串

BufferedReader br = new BufferedReader(xx);

while ((inStr = br.readLine()) != null) {

sb.append(inStr + “\r\n”);

}

outStr = sb.toString();

// 要用来做导入用的sql目标文件:

FileOutputStream fout = new FileOutputStream(

“e:/mysql-5.0.27-win32/bin/bjse22.sql”);

OutputStreamWriter writer = new OutputStreamWriter(fout, “utf8”);

writer.write(outStr);

// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免

writer.flush();

// 别忘记关闭输入输出流

in.close();

xx.close();

br.close();

writer.close();

fout.close();

System.out.println(“”);

} catch (Exception e) {

e.printStackTrace();

}

}

public static void load() {

try {

String fPath = “e:/mysql-5.0.27-win32/bin/bjse22.sql”;

Runtime rt = Runtime.getRuntime();

// 调用 mysql 的 cmd:

Process child = rt.exec(“mysql -u root bjse “);

OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流

String inStr;

StringBuffer sb = new StringBuffer(“”);

String outStr;

BufferedReader br = new BufferedReader(new InputStreamReader(

new FileInputStream(fPath), “utf8”));

while ((inStr = br.readLine()) != null) {

sb.append(inStr + “\r\n”);

}

outStr = sb.toString();

OutputStreamWriter writer = new OutputStreamWriter(out, “utf8”);

writer.write(outStr);

// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免

writer.flush();

// 别忘记关闭输入输出流

out.close();

br.close();

writer.close();

System.out.println(“”);

} catch (Exception e) {

e.printStackTrace();

}

}

备份语句:

mysql SELECT * INTO OUTFILE “D:\\data\\db_testtemp.txt” fields terminated by ‘,

‘ from db_testtemp where std_state=’1’;

Query OK, 1 row affected (0.00 sec)

mysql SELECT * INTO OUTFILE “D:\\data\\db_testtemp.txt” fields terminated by ‘,

‘ from db_testtemp ;

Query OK, 2 rows affected (0.00 sec)

只生成一个只有数据的.txt:SELECT * INTO OUTFILE “D:\\data\\db_testtemp.txt” fields terminated by ‘,’ lines terminated by ‘\r\n’ from db_testtemp ;

只生成一个只有数据的.txt:mysqldump -uroot -pncae2010 -w “std_state=’1′” -T D:\data –no-create-info –fields-terminated-by=, exam db_testtemp

生成一个创建数据库语句的.sql,一个只有数据的.txt:mysqldump -uroot -pncae2010 -w “std_state=’1′” -T D:\data –fields-terminated-by=, exam db_testtemp

只生成insert语句:mysqldump -uroot -pncae2010 -w “std_state=’1′” -t exam db_testtemp D:\data\a.sql

java 备份mysql数据库

备份MySQL数据库的方法:

import java.io.File;

import java.io.IOException;

/**

* MySQL数据库备份

*

* @author GaoHuanjie

*/

public class MySQLDatabaseBackup {

/**

* Java代码实现MySQL数据库导出

*

* @author GaoHuanjie

* @param hostIP MySQL数据库所在服务器地址IP

* @param userName 进入数据库所需要的用户名

* @param password 进入数据库所需要的密码

* @param savePath 数据库导出文件保存路径

* @param fileName 数据库导出文件文件名

* @param databaseName 要导出的数据库名

* @return 返回true表示导出成功,否则返回false。

*/

public static boolean exportDatabaseTool(String hostIP, String userName, String password, String savePath, String fileName, String databaseName) {

File saveFile = new File(savePath);

if (!saveFile.exists()) {// 如果目录不存在

saveFile.mkdirs();// 创建文件夹

}

if (!savePath.endsWith(File.separator)) {

savePath = savePath + File.separator;

}

StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append(“mysqldump”).append(” –opt”).append(” -h”).append(hostIP);

stringBuilder.append(” –user=”).append(userName) .append(” –password=”).append(password).append(” –lock-all-tables=true”);

stringBuilder.append(” –result-file=”).append(savePath + fileName).append(” –default-character-set=utf8 “).append(databaseName);

try {

Process process = Runtime.getRuntime().exec(stringBuilder.toString());

if (process.waitFor() == 0) {// 0 表示线程正常终止。

return true;

}

} catch (IOException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

return false;

}

public static void main(String[] args) throws InterruptedException {

if (exportDatabaseTool(“172.16.0.127”, “root”, “123456”, “D:/backupDatabase”, “2014-10-14.sql”, “test”)) {

System.out.println(“数据库备份成功!!!”);

} else {

System.out.println(“数据库备份失败!!!”);

}

}

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/245101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:06
下一篇 2024-12-12 13:06

相关推荐

  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29
  • Python樱花树代码简单

    本文将对Python樱花树代码进行详细的阐述和讲解,帮助读者更好地理解该代码的实现方法。 一、简介 樱花树是一种图形效果,它的实现方法比较简单。Python中可以通过turtle这…

    编程 2025-04-28
  • Python大神作品:让编程变得更加简单

    Python作为一种高级的解释性编程语言,一直被广泛地运用于各个领域,从Web开发、游戏开发到人工智能,Python都扮演着重要的角色。Python的代码简洁明了,易于阅读和维护,…

    编程 2025-04-28
  • 用Python实现简单爬虫程序

    在当今时代,互联网上的信息量是爆炸式增长的,其中很多信息可以被利用。对于数据分析、数据挖掘或者其他一些需要大量数据的任务,我们可以使用爬虫技术从各个网站获取需要的信息。而Pytho…

    编程 2025-04-28
  • 用什么来备份 ssbackup 文件?

    SSBackup是一种用于存储数据的文件格式,可以在Snapshots和Debian GNU / Linux系统上使用。备份文件是大多数用户和数据中心管理员的关键需求。通过备份,可…

    编程 2025-04-27
  • 如何制作一个简单的换装游戏

    本文将从以下几个方面,为大家介绍如何制作一个简单的换装游戏: 1. 游戏需求和界面设计 2. 使用HTML、CSS和JavaScript开发游戏 3. 实现游戏的基本功能:拖拽交互…

    编程 2025-04-27
  • Guava Limiter——限流器的简单易用

    本文将从多个维度对Guava Limiter进行详细阐述,介绍其定义、使用方法、工作原理和案例应用等方面,并给出完整的代码示例,希望能够帮助读者更好地了解和使用该库。 一、定义 G…

    编程 2025-04-27
  • 2的32次方-1:一个看似简单却又复杂的数字

    对于计算机领域的人来说,2的32次方-1(也就是十进制下的4294967295)这个数字并不陌生。它经常被用来表示IPv4地址或者无符号32位整数的最大值。但实际上,这个数字却包含…

    编程 2025-04-27

发表回复

登录后才能评论