如题,由于项目需要,研究并实现了java web的 mysql数据库的备份、下载、恢复功能,中间遇到一些问题,耗费了不少时间,下面让我一一道来:
背景介绍:
- window 7系统
- mysql 5.7
- eclipse
- spring mvc
- tomcat 7
- jdk 1.7
先上代码:
使用mysql的mysqldump 命令进行备份。
/** * Java代码实现MySQL数据库备份 * * @author lgc * @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) throws InterruptedException { boolean fa = false; File saveFile = new File(savePath); if (!saveFile.exists()) {// 如果目录不存在 saveFile.mkdirs();// 创建文件夹 } if (!savePath.endsWith(File.separator)) { savePath = savePath + File.separator; } PrintWriter printWriter = null; try { printWriter = new PrintWriter(new OutputStreamWriter(new FileOutputStream(savePath + fileName), "utf8")); String backup = "mysqldump -h" + hostIP + " -u" + userName + " -p" + password + " " + databaseName + " --set-charset=UTF8 "; String path = "E:\\";//这里是你复制的mysqldump.exe所在的文件目录下 String commad = "cmd /c " + path + backup + ">" + savePath + fileName; System.out.println(commad); Runtime.getRuntime().exec(commad); fa = true; } catch (IOException e) { e.printStackTrace(); } finally { if (printWriter != null) { printWriter.close(); } } return fa; }
恢复备份:
// 数据库恢复 public static void load(String filename) { try { String path = "E:\\"; String commad = "cmd /c " + path+"mysql -u root -pcisoft jeecms "; Runtime rt = Runtime.getRuntime(); // 调用 mysql 的 cmd: Process child = rt.exec(commad); OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流 String inStr; StringBuffer sb = new StringBuffer(""); String outStr; BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(filename), "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("/* Load OK! */"); } catch (Exception e) { e.printStackTrace(); } }
坑一:
- mysql 安装在c盘默认路径下,Program Files 文件夹名称之间有空格,导致程序明明运行一切正常,就是无法导出数据,文件大小始终为0kb。
相关推荐
积分兑换、数据库备份还原、折扣管理、商品管理等 运行环境 jdk7(8)+tomcat7(8)+mysql5.7+myeclipes或eclipse或idea 项目技术(必填) spring+hibernate+struts2+ajax+json+jquery+proxool+easyui+jquery+bootstrap
例如,MySQL的事务支持可以确保数据在多个操作中的一致性,数据备份和恢复功能可以保护数据免受意外损坏或数据泄漏的影响,性能优化功能可以提高数据库的性能和响应速度。 综上所述,MySQL是一种功能强大、灵活可靠...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...
本次健身房众筹系统的实现过程,它的开发使用B/S结构即浏览器和服务器结构框架,前端采用Java web开发语言,数据库使用了Mysql数据库,页面设计采用了MVC框架,后端采用了Javascrip等其他一些脚本语言,使用到在大学...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...
以下是对MySQL数据库的详细介绍: 核心特性与优势 开源与跨平台 MySQL遵循GPL开源协议,这意味着任何人都可以免费下载、使用和修改其源代码。这种开放性促进了广泛的社区支持和第三方插件、工具的发展。此外,MySQL...
以下是对MySQL数据库的详细介绍: 核心特性与优势 开源与跨平台 MySQL遵循GPL开源协议,这意味着任何人都可以免费下载、使用和修改其源代码。这种开放性促进了广泛的社区支持和第三方插件、工具的发展。此外,MySQL...
系统管理:系统管理主要包括数据库备份和数据库还原。 商品管理:商品管理主要包括新到商品添加、商品查询、商品修改、商品删除,商品查看和分页。 客户关系:客户关系主要显示客户关系图和订花时间,以及查询和维护...
本程序提供了两种实现方法。第1种是维护SQL Server2000数据库,第2...如果在查询的数据库维护记录中存在无用的备份文件,则单击相应的“删除”超链接,可以删除当前的数据维护记录及存放在服务端的数据库备份的文件夹。
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...
以下是对MySQL数据库的详细介绍: 核心特性与优势 开源与跨平台 MySQL遵循GPL开源协议,这意味着任何人都可以免费下载、使用和修改其源代码。这种开放性促进了广泛的社区支持和第三方插件、工具的发展。此外,MySQL...
以下是对MySQL数据库的详细介绍: 核心特性与优势 开源与跨平台 MySQL遵循GPL开源协议,这意味着任何人都可以免费下载、使用和修改其源代码。这种开放性促进了广泛的社区支持和第三方插件、工具的发展。此外,MySQL...
以下是对MySQL数据库的详细介绍: 核心特性与优势 开源与跨平台 MySQL遵循GPL开源协议,这意味着任何人都可以免费下载、使用和修改其源代码。这种开放性促进了广泛的社区支持和第三方插件、工具的发展。此外,MySQL...
以下是对MySQL数据库的详细介绍: 核心特性与优势 开源与跨平台 MySQL遵循GPL开源协议,这意味着任何人都可以免费下载、使用和修改其源代码。这种开放性促进了广泛的社区支持和第三方插件、工具的发展。此外,MySQL...
也可以直接通过还原mssql_dababase_bak.db数据库备份文件建设数据库。 5、根据您的数据库配置情况,修改WEB-INF/class/easyjf-dbo.xml文件配置。 6、启动tomcat,在浏览器中输入http://localhost:8080/即可运行...
在该系统中,采用数据服务器,和客户机相结合形成 B/S 结构,由相关人员或系统管理员执行如系统的备份、恢复、修改等重要操作,从而用来提高系统的安全性,并且降低了了黑客通过 Web 入侵来获取以及改变系统中重要...
也可以直接通过还原mssql_dababase_bak.db数据库备份文件建设数据库。 5、根据您的数据库配置情况,修改WEB-INF/class/easyjf-dbo.xml文件配置。 6、启动tomcat,在浏览器中输入http://localhost:8080/即可运行...
以下是对MySQL数据库的详细介绍: 核心特性与优势 开源与跨平台 MySQL遵循GPL开源协议,这意味着任何人都可以免费下载、使用和修改其源代码。这种开放性促进了广泛的社区支持和第三方插件、工具的发展。此外,MySQL...