javamysql备份到0的简单介绍
本文内容列表:
- 1、Java MySQL备份数据库数据的问题
- 2. 如何使用Java备份MySQL数据库?
- 3.Java备份mysql数据库
java mysql备份数据库数据问题
很正常。 。 。因为你打印的只是cmd输出的数据。 。 。
以及mysqldump -uroot -p1234 -hhostlocal数据库名D:/bak/jxc.sql;不会向
cmd 返回任何信息。 。它只是在指定的文件夹中生成 SQL 文件。 。如果你真的想知道备份信息
只需在cmd运行成功后立即使用输入流读取D:/bak/jxc.sql即可。 。 。
如何使用Java备份MySQL数据库?
首先设置mysql环境变量(在路径中添加%MYSQL_HOME%\bin)并重启电脑。
完整代码:
备份:
public static void main(String[] args) {
backup();
load();
}
public static void backup () {
try {
Runtime rt = Runtime.getRuntime();
//调用mysql cmd:
进程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 error = new FileOutputStream(
"e:/mysql-5.0.27-win32/bin/bjse22.sql");
OutputStreamWriter writer = new OutputStreamWriter(error, "utf8 ") ;
writer.write(outStr);
//注意:这里如果使用缓冲写入文件,会导致中文乱码。使用flush()方法可以避免
writer。 lush();
//不要忘记关闭输入和输出流
in.close();
xx.close();
br.close();
writer.close() ;
error.close();
System.out.println("");
} catch (异常 e) {
e.printStackTrace();
}
}
public static void load() {
try {
String fPath = "e:/mysql-5.0.27-win32/bin/bjse22.sql";
运行时 rt = Runtime .getRuntime( ; 作为输出流
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(); close writer.close();
System.out.println("");
} catch (异常 e) {
e.printStackTrace();
}
}
备份语句:
mysql SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" fields returned by ',
' from db_testtemp where std_state='1';
查询正常,1 行受影响( 0.00 秒)
mysql SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" 字段以 db_testtemp 中的 ',
' 终止;
查询正常,2 行受影响(0.00 秒)
仅生成仅包含数据的 .txt: SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" 以 ',' 结尾的字段,以 db_testtemp 的 '\r\n' 结尾的行;
仅生成 .仅数据 txt 文件:仅数据 txt Data.txt:mysqldump -uroot -pncae2010 -w "std_state='1'" -T D:\data --no-create-info --fields-termination-by=, exam db_testtemp
生成一个创建数据库语句.sql,一个仅包含数据的.txt: mysqldump -uroot -pncae2010 -w "std_state='1'" -T D:\data --fields-termination-by=, exam db_testtemp
只生成插入语句: 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 GauHuanjie
*/
public class MySQLDatabaseBackup {
/**
* 实现 MySQL 数据库导出的 Java 代码
*
* @author GauHuanjie
* @param hostIP 数据库所在服务器 MySQL IP 地址
* @param username 进入数据库所需的用户名
* @param password 进入数据库所需的密码
* @param savePath 保存数据库导出文件路径
* @param filename 数据库导出文件 filename
* @param databaseName 需要导出的数据库名称
* @return 返回true表示导出成功,否则返回false。
*/
公共静态布尔exportDatabaseTool(字符串主机IP,字符串用户名,字符串密码,字符串savePath,字符串文件名,字符串数据库名称){
文件saveFile =新文件(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(用户名) .append(" --password=").append(密码).append(" --lock - all -tables=true");
stringBuilder.append(" --result-file=").append(savePath + 文件名).append(" --default-character-set=utf8 ").append(数据库名称);
尝试{
Process process = Runtime.getRuntime().exec(stringBuilder.toString());
if (process.waitFor() == 0) { // 0 表示线程正常终止。
return true;
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
返回 false;
}
public static void main(String[] args) 抛出 InterruptedException {
if (exportDatabaseTool("172.16.0.127", "root", "123456", " D:/backupDatabase", "2014-10-14.sql", "test")) {
System.out.println("数据库备份成功!!!");
} else {
System.out.println("数据库备份失败!!!");
}
}
}
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
