javamysql数据备份
㈠ java中备份Mysql(java中备份SqLseⅤer数据库)
1.首先设置环境变量:有两种方式。第一种,在环境变量中添加MYSQL_HOME,设置内容为mysql的安装路径,然后,在path中添加路径%MYSQL_HOME%in。第二种方法,不新建MYSQL_HOME,而是直接在path中添加mysql安装路径in。备亩铅这样,调用cmd的时候可以直接找到耐册mysqlmp和mysql命令了。
2.现在编写JAVA方法类来实现数据库的备份和仿好还原。代码如下:
importjava.io.IOException;
publicclassdb_deal{
privatestaticStringstr=null;
publicstaticvoidbackup(){
//使用mysqlmp来备份数据库,格式“mysqlmp-uusername-pPassword--optdatabase_name str="mysqlmp-uroot-proot--opthjh try{ Runtimert=Runtime.getRuntime(); rt.exec("cmd/c"str); //Runtime.getRuntime().exec()这个方法可以实现对命令的调用。具体内容看API //上面可以cmd调用控制台,然后执行str中的字符串表示的命令。 System.out.println("suessly!"); }catch(IOExceptione){ e.(); System.out.println("somethingwrong!");} } publicstaticvoidload(){ str="mysql-uroot-prootj2603 //mysql命令可以实现数据库的还原。格式“mysql-uUsername-pPassworddatabase_name Runtimert=Runtime.getRuntime(); try{ rt.exec("cmd/c"str); System.out.println("restoresuessly!"); }catch(IOExceptione){ e.(); System.out.println("restorefail!"); } } } 3.最后要备份的地方给这个类实例化,然后调用backup(),load()来实现mysql数据库的简单备份跟还原。 ㈡ 如何备份mysql数据库 1、先用工具连接到数据库,如Navicat Premium 2、在要备份的数据库点右键,选择转储sql文件-结构和数据 ㈢ java 备份mysql数据库的部分数据 假设;你要备份的数据条件是时间,只备份当天的数据。备份区:数据库。 匹配当天的数据读出来。 在将数据添加到备份区的数据库。 备份区表的创建问题:1.你可以事先手动建好。 2.也可以通过程序自动建表有两步; a).判断当前备份数据,在备份区是否有对应的表。(有直接添加) b).如果没有,拷贝当前备份数据的表结构,在备份区生成。 ㈣ mysql濡备綍澶囦唤鏁版嵁搴 链夊叧浜庢暟鎹澶囦唤锛屾帹钻愭偍浣跨敤Navicat锛屽畠鎻愪緵钬滀汉宸ュ囦唤钬濆拰钬滆嚜锷ㄥ囦唤钬濅袱澶у囦唤锷熻兘銆 Navicat Premium 鏄涓濂楀彲鍒涘缓澶氢釜杩炴帴镄勬暟鎹搴揿紑鍙戝伐鍏凤纴璁╀綘浠庡崟涓搴旂敤绋嫔簭涓钖屾椂杩炴帴 MySQL銆丮ariaDB銆丮ongoDB銆丼QL Server銆丱racle銆丳ostgreSQL 鍜 SQLite 銆傚畠涓 OceanBase 鏁版嵁搴揿强 Amazon RDS銆丄mazon Aurora銆丄mazon Redshift銆丮icrosoft Azure銆丱racle Cloud銆丮ongoDB Atlas銆侀樋閲屼簯銆佽吘璁浜戝拰鍗庝负浜戠瓑浜戞暟鎹搴揿吋瀹广备綘鍙浠ュ揩阃熻交𨱒惧湴鍒涘缓銆佺$悊鍜岀淮鎶ゆ暟鎹搴撱 浠ヤ笅阃佷笂淇濆嗙骇鏁欑▼锛屽笇链涘圭敤鎴蜂滑链夊府锷┿ 1.鍏埚湪宸︿晶镄勫艰埅绐楁牸涓镣瑰嚮闇瑕佸囦唤镄勫唴瀹规墍鍦ㄧ殑database銆 璇风偣鍑昏緭鍏ュ浘鐗囨弿杩 ㈤ 怎么用java备份mysql数据库
首先,设置mysql的环境变量(在path中添加%MYSQL_HOME%\bin),重启电脑。 ㈥ mysql到底如何备份 数据备份是数据容灾的最后一道防线,即便有着两地三中心的架构,备份也依然重要。如果备份出问题,备份时影响了交易业务,备份数据无法恢复,这些也是企业难以承受的。所以选择合适的备份工具尤为重要。 每个企业级数据库都会有配套的备份工具,MEB(MySQL Enterprise Backup)就是MySQL企业版中非常重要的工具之一,是为企业级客户提供的数据备份方案。 Xtrabackup一直作为MEB 开源版备胎而存在,从MySQL 8.0开始情况可能会变得有所不同。 在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB备份/恢复体验会更好,目前xtrabackup还不支持这些特性。 MySQL 企业版还有哪些功能?浜哄伐澶囦唤
完整代码:
备份:
public static void main(String[] args) {
backup();
load();
}
public static void backup() {
try {
Runtime rt = Runtime.getRuntime();
// 调用 mysql 的 cmd:
Process child = rt
.exec("mysqlmp -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 fout = new FileOutputStream(
"e:/mysql-5.0.27-win32/bin/bjse22.sql");
OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");
writer.write(outStr);
// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
// 别忘记关闭输入输出流
in.close();
xx.close();
br.close();
writer.close();
fout.close();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void load() {
try {
String fPath = "e:/mysql-5.0.27-win32/bin/bjse22.sql";
Runtime rt = Runtime.getRuntime();
// 调用 mysql 的 cmd:
Process child = rt.exec("mysql -u root bjse ");
OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
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();
writer.close();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
备份语句:
mysql> SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" fields terminated by ',
' from db_testtemp where std_state='1';
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" fields terminated by ',
' from db_testtemp ;
Query OK, 2 rows affected (0.00 sec)
只生成一个只有数据的.txt:SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" fields terminated by ',' lines terminated by '\r\n' from db_testtemp ;
只生成一个只有数据的.txt:mysqlmp -uroot -pncae2010 -w "std_state='1'" -T D:\data --no-create-info --fields-terminated-by=, exam db_testtemp
生成一个创建数据库语句的.sql,一个只有数据的.txt:mysqlmp -uroot -pncae2010 -w "std_state='1'" -T D:\data --fields-terminated-by=, exam db_testtemp
只生成insert语句:mysqlmp -uroot -pncae2010 -w "std_state='1'" -t exam db_testtemp > D:\data\a.sql