如何用Java实现MySQL数据库的备份和恢复

如何用Java实现MySQL数据库的备份和恢复,第1张

直接黏贴在IDEA上按格式查看

package com.liuzy.javaopen.servletimport java.io.BufferedReaderimport java.io.Fileimport java.io.FileInputStreamimport java.io.FileOutputStreamimport java.io.IOExceptionimport java.io.InputStreamimport java.io.InputStreamReaderimport java.io.OutputStreamimport java.io.OutputStreamWriterpublic class Test { public static void main(String[] args) throws IOException{ backup("d:\\d.sql") //recover("d:\\d.sql") } public static void backup(String path) throws IOException{ Runtime runtime = Runtime.getRuntime() //-u后面是用户名,-p是密码-p后面最好不要有空格,-family是数据库的名字 Process process = runtime.exec("mysqldump -u root -pmysql goldenwing") InputStream inputStream = process.getInputStream()//得到输入流,写成.sql文件 InputStreamReader reader = new InputStreamReader(inputStream) BufferedReader br = new BufferedReader(reader) String s = null StringBuffer sb = new StringBuffer() while((s = br.readLine()) != null){ sb.append(s+"\r\n") } s = sb.toString() System.out.println(s) File file = new File(path) file.getParentFile().mkdirs() FileOutputStream fileOutputStream = new FileOutputStream(file) fileOutputStream.write(s.getBytes()) fileOutputStream.close() br.close() reader.close() inputStream.close() } public static void recover(String path) throws IOException{ Runtime runtime = Runtime.getRuntime() //-u后面是用户名,-p是密码-p后面最好不要有空格,-family是数据库的名字,--default-character-set=utf8,这句话一定的加 //我就是因为这句话没加导致程序运行成功,但是数据库里面的内容还是以前的内容,最好写上完成的sql放到cmd中一运行才知道报错了 //错误信息: //mysql: Character set 'utf-8' is not a compiled character set and is not specified in the ' //C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\Index.xml' file ERROR 2019 (HY000): Can't // initialize character set utf-8 (path: C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\), //又是讨人厌的编码问题,在恢复的时候设置一下默认的编码就可以了。 Process process = runtime.exec("mysql -u root -pmysql --default-character-set=utf8 goldenwing") OutputStream outputStream = process.getOutputStream() BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path))) String str = null StringBuffer sb = new StringBuffer() while((str = br.readLine()) != null){ sb.append(str+"\r\n") } str = sb.toString() System.out.println(str) OutputStreamWriter writer = new OutputStreamWriter(outputStream,"utf-8") writer.write(str) writer.flush() outputStream.close() br.close() writer.close() }}

本文将详细阐述如何还MysqlWorkbench上还原mysql数据库。

首先,打开MysqlWorkbench

点击LocalinstanceMySql57进行登录,输入root密码

登录进去后,点击左边栏的administrationt选项卡

在里面找到“dataimport/restore”,点击进入。

这个地方需要选择importfromself-containedfile,从文件夹中选择备份的文件,然后在defaulttargetschema选项里选择要还原的数据库名称。右下角选择“dumpstructureanddata”

一切准备就绪后,点击右下角的“startimport”,开始还原数据库,最后进度条完成后,表示数据库还原完成。

将MySql中的数据库导出到文件中 备份import java.io.*import java.lang.*public class BeiFen {public static void main(String[] args) {// 数据库导出String user = "root"// 数据库帐号String password = "root"// 登陆密码String data...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9995337.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存