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