欢迎来到天天文库
浏览记录
ID:38164187
大小:107.92 KB
页数:7页
时间:2019-06-06
《java智能实现数据库备份》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、----------------------------------------------------->>>>>>>>原理:MySQL数据库备份原理:Navicat等数据库界面软件通用的数据库备份原理就是直接调用MYSQL本身的系统命令。MySQL本身的系统命令:--opt–hlocalhost--user=root--password=admin--lock-all-tables=true--result-file=E://oes//2221.sql--default-character-set=utf8oes解析:主机–h,用户名--user,密
2、码—password,锁定所有表--lock-all-tables=true,目标文件--result-file,编码--default-character-set=utf8,数据源oesJava中执行系统命令方法:Runtimecmd=Runtime.getRuntime();Processp=cmd.exec(“”);//执行CMD指令(String)由于无法确定主机是否配置了MySQL环境变量,所以需要最保险的确定MySQL中mysqldump的位置,它存在于MySQL安装文件夹得Bin目录下,问题就是如何获取MySQL的安装目录?--------
3、--------------------------------------------->>>>>>>>针对于获取MySQL的安装目录,我用的是比较笨的方法:解析注册表。找到注册表中MySQL的软件信息,里面包含有软件的安装地址,卸载地址,版本号等等基本信息,直接取用它的安装信息就行。软件信息在注册表中的位置:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall软件关联注册表中软件信息:---------------------------------------
4、-------------->>>>>>>>类CheckSoftware,解析MySQL软件安装地址importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclassCheckSoftware{/**遍历注册表,查询MySQL的注册表关联*/publicstaticStringcheck()throwsException{Runtimeruntime=Runtime.getRuntime();Processprocess=nu
5、ll;process=runtime.exec("cmd/cregqueryHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\");BufferedReaderin=newBufferedReader(newInputStreamReader(process.getInputStream()));Stringstring=null;while((string=in.readLine())!=null){process=runtime.exec("cmd
6、/cregquery"+string+"/vDisplayName");BufferedReadername=newBufferedReader(newInputStreamReader(process.getInputStream()));Stringmessage=queryValue(string,"DisplayName");if(message!=null&&message.contains("MySQL")){Stringmessage2=queryValue(string,"InstallLocation");returnmessage2;
7、}}in.close();process.destroy();returnnull;}/**查询出需要的MySQL服务的安装路径*/privatestaticStringqueryValue(Stringstring,Stringmethod)throwsIOException{StringpathString="";Runtimeruntime=Runtime.getRuntime();Processprocess=null;BufferedReaderbr=null;process=runtime.exec("cmd/cregquery"+strin
8、g+"/v"+method);br=newBufferedReader(newI
此文档下载收益归作者所有