Code前端首页关于Code前端联系我们

javamysql备份到0的简单介绍

terry 2年前 (2023-09-30) 阅读数 42 #Mysql
文章标签 Mysql

本文内容列表:

  • 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前端网发表,如需转载,请注明页面地址。

热门