xml備份mysql資料庫的簡單介紹

本文目錄一覽:

如何將xml格式文件導入mysql中

舉例說明如下

xml文件名為: text.xml

xml數據文件的結構如下:

node1

node2 name=”abc”123/node2

/node1

sql命令如下:

SET @xml = LOAD_FILE(‘text.xml’); — 要指定完整的文件位置

SELECT ExtractValue(@xml, ‘/node1/node2/@name’) as name,ExtractValue(@xml, ‘/node1/node2’) as data;

返回數據結果就是:

name | data

abc | 123

如何用Java實現MySQL資料庫的備份和恢復

MySQL的一些前台工具是有備份恢復功能的,可是如何在我們的應用程序中實現這一功能呢?本文提供了示例代碼來說明如何使用Java代碼實現MySQL資料庫的備份恢復。

本次實現是使用了MySQL資料庫本身提供的備份命令mysqldump和恢復命令mysql,在java代碼中通過從命令行調用這兩條命令來實現備份和恢復。備份和恢復所使用的文件都是sql文件。

本代碼是參照網上某網友提供的源碼完成的。

[java] view plaincopy

package xxx.utils;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.io.UnsupportedEncodingException;

/**

* MySQL資料庫的備份與恢復 缺陷:可能會被殺毒軟體攔截

*

* @author xxx

* @version xxx

*/

public class DatabaseBackup {

/** MySQL安裝目錄的Bin目錄的絕對路徑 */

private String mysqlBinPath;

/** 訪問MySQL資料庫的用戶名 */

private String username;

/** 訪問MySQL資料庫的密碼 */

private String password;

public String getMysqlBinPath() {

return mysqlBinPath;

}

public void setMysqlBinPath(String mysqlBinPath) {

this.mysqlBinPath = mysqlBinPath;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public DatabaseBackup(String mysqlBinPath, String username, String password) {

if (!mysqlBinPath.endsWith(File.separator)) {

mysqlBinPath = mysqlBinPath + File.separator;

}

this.mysqlBinPath = mysqlBinPath;

this.username = username;

this.password = password;

}

/**

* 備份資料庫

*

* @param output

* 輸出流

* @param dbname

* 要備份的資料庫名

*/

public void backup(OutputStream output, String dbname) {

String command = “cmd /c ” + mysqlBinPath + “mysqldump -u” + username

+ ” -p” + password + ” –set-charset=utf8 ” + dbname;

PrintWriter p = null;

BufferedReader reader = null;

try {

p = new PrintWriter(new OutputStreamWriter(output, “utf8”));

Process process = Runtime.getRuntime().exec(command);

InputStreamReader inputStreamReader = new InputStreamReader(process

.getInputStream(), “utf8”);

reader = new BufferedReader(inputStreamReader);

String line = null;

while ((line = reader.readLine()) != null) {

p.println(line);

}

p.flush();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (reader != null) {

reader.close();

}

if (p != null) {

p.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

* 備份資料庫,如果指定路徑的文件不存在會自動生成

*

* @param dest

* 備份文件的路徑

* @param dbname

* 要備份的資料庫

*/

public void backup(String dest, String dbname) {

try {

OutputStream out = new FileOutputStream(dest);

backup(out, dbname);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

/**

* 恢復資料庫

*

* @param input

* 輸入流

* @param dbname

* 資料庫名

*/

public void restore(InputStream input, String dbname) {

String command = “cmd /c ” + mysqlBinPath + “mysql -u” + username

+ ” -p” + password + ” ” + dbname;

try {

Process process = Runtime.getRuntime().exec(command);

OutputStream out = process.getOutputStream();

String line = null;

String outStr = null;

StringBuffer sb = new StringBuffer(“”);

BufferedReader br = new BufferedReader(new InputStreamReader(input,

“utf8”));

while ((line = br.readLine()) != null) {

sb.append(line + “/r/n”);

}

outStr = sb.toString();

OutputStreamWriter writer = new OutputStreamWriter(out, “utf8”);

writer.write(outStr);

writer.flush();

out.close();

br.close();

writer.close();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 恢復資料庫

*

* @param dest

* 備份文件的路徑

* @param dbname

* 資料庫名

*/

public void restore(String dest, String dbname) {

try {

InputStream input = new FileInputStream(dest);

restore(input, dbname);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

Configuration config = HibernateSessionFactory.getConfiguration();

String binPath = config.getProperty(“mysql.binpath”);

String userName = config.getProperty(“connection.username”);

String pwd = config.getProperty(“connection.password”);

DatabaseBackup bak = new DatabaseBackup(binPath, userName, pwd);

bak.backup(“c:/ttt.sql”, “ttt”);

bak.restore(“c:/ttt.sql”, “ttt”);

}

}

最後的main方法只是一個簡單的使用方法的示例代碼。

本人所做的項目是使用了hibernate的,而這裡需要提供MySQL的bin路徑和用戶名、密碼,而hibernate.cfg.xml中本身就是需要配置資料庫的用戶名和密碼,所以我把MySQL的bin路徑也直接配置到了這個文件裡面,也不需要創建專門的配置文件,不需要寫讀取配置文件的介面了。

如果不明白,可以去看hibernate.cfg.xml的說明,裡面是可以配置其他的property的

windows下Mysql 怎樣備份和還原?

前提是把MYSQL的安裝路徑\bin添加到系統環境變數PATH中了。

備份:mysqldump

-u

root

-p123456

kcgl

c:\20090219.sql

mysqldump

備份命令

root

用戶名(root管理員)

123456

密碼

kcgl

備份的資料庫名;

備份符號

20090219.sql

備份的文件名

還原:

mysql

-u

root

-p123456

kcgl

c:\20090219.sql

mysql

還原命令

root

用戶名(root管理員)

123456

密碼

dbcurr

備份的資料庫名;

還原符號

20090219.sql還原的文件名

注意:首先要確保你的mysql

中有kcgl這個庫,還原命令是不會自動建庫的。

mysqldump

遠程備份

mysqldump

-h

ip

-uroot

-proot

database

c:\data.sql

---------其他---------

mysqldump備份:

mysqldump

-u用戶名

-p密碼

-h主機

資料庫

a

-w

“sql條件”

–lock-all-tables

路徑

案例:

mysqldump

-uroot

-p1234

-hlocalhost

db1

a

-w

“id

in

(select

id

from

b)”

–lock-all-tables

c:\aa.txt

mysqldump還原:

mysqldump

-u用戶名

-p密碼

-h主機

資料庫

路徑

案例:

mysql

-uroot

-p1234

db1

c:\aa.txt

mysqldump按條件導出:

mysqldump

-u用戶名

-p密碼

-h主機

資料庫

a

–where

“條件語句”

–no-建表

路徑

mysqldump

-uroot

-p1234

dbname

a

–where

“tag=’88′”

–no-create-info

c:\a.sql

mysqldump按導入:

mysqldump

-u用戶名

-p密碼

-h主機

資料庫

路徑

案例:

mysql

-uroot

-p1234

db1

c:\a.txt

mysqldump導出表:

mysqldump

-u用戶名

-p密碼

-h主機

資料庫

案例:

mysqldump

-uroot

-p

sqlhk9

a

–no-data

————————————————-

mysqldump命令介紹

–all-databases,

-A:

備份所有資料庫

–databases,

-B:

用於備份多個資料庫,如果沒有該選項,mysql

dump

把第一個名字參數作為資料庫名,後面的作為表名。使用該選項,mysql

dum把每個名字都當作為資料庫名。

–force,

-f:即使發現sql錯誤,仍然繼續備份

–host=host_name,

-h

host_name:備份主機名,默認為localhost

–no-data,

-d:只導出表結構

–password[=password],

-p[password]:密碼

–port=port_num,

-P

port_num:制定TCP/IP連接時的埠號

–quick,

-q:快速導出

–tables:覆蓋

–databases

or

-B選項,後面所跟參數被視作表名

–user=user_name,

-u

user_name:用戶名

–xml,

-X:導出為xml文件

1.備份全部資料庫的數據和結構

mysql

dump

-uroot

-p123456

-A

F:\all.sql

2.備份全部資料庫的結構(加

-d

參數)

mysql

dump

-uroot

-p123456

-A

-dF:\all_struct.sql

3.備份全部資料庫的數據(加

-t

參數)

mysql

dump

-uroot

-p123456

-A

-tF:\all_data.sql

4.備份單個資料庫的數據和結構(,資料庫名mydb)

mysql

dump

-uroot

-p123456

mydbF:\mydb.sql

5.備份單個資料庫的結構

mysql

dump

-uroot

-p123456

mydb

-dF:\mydb.sql

6.備份單個資料庫的數據

mysql

dump

-uroot

-p123456

mydb

-tF:\mydb.sql

7.備份多個表的數據和結構(數據,結構的單獨備份方法與上同)

mysql

dump

-uroot

-p123456

mydb

t1

t2

f:\multables.sql

8.一次備份多個資料庫

mysql

dump

-uroot

-p123456

–databases

db1

db2

f:\muldbs.sql

還原部分分(1)mysql

命令行source方法

(2)系統命令行方法

1.還原全部資料庫:

(1)

mysql

命令行:mysql

source

f:\all.sql

(2)

系統命令行:

mysql

-uroot

-p123456

use

mydb

mysql

source

f:\mydb.sql

(2)

mysql

-uroot

-p123456

mydb

use

mydb

mysql

source

f:\multables.sql

(2)

mysql

-uroot

-p123456

mydb

source

f:\muldbs.sql

(2)

系統命令行:

mysql

-uroot

-p123456

評論

載入更多

怎麼備份和還原mysql資料庫

備份資料庫

使用mysqldump命令備份資料庫

還原資料庫

1、使用mysql命令還原資料庫

將game_backup.sql 還原至 game 資料庫:

2、使用source命令還原資料庫

如果資料庫過大,建議可以使用source命令

xml實時同步mysql資料庫

創建資料庫

選擇開始菜單中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打開【SQL Server Management Studio】窗口,並使用Windows或 SQL Server身份驗證建立連接。

在【對象資源管理器】窗口中展開伺服器,然後選擇【資料庫】節點

右鍵單擊【資料庫】節點,從彈出來的快捷菜單中選擇【新建資料庫】命令。

執行上述操作後,會彈出【新建資料庫】對話框。在對話框、左側有3個選項,分別是【常規】、【選項】和【文件組】。完成這三個選項中的設置會後,就完成了資料庫的創建工作,

在【資料庫名稱】文本框中輸入要新建資料庫的名稱。例如,這裡以「新建的資料庫」。

在【所有者】文本框中輸入新建資料庫的所有者,如sa。根據資料庫的使用情況,選擇啟用或者禁用【使用全文索引】複選框。

在【資料庫文件】列表中包括兩行,一行是資料庫文件,而另一行是日記文件。通過單擊下面的【添加】、【刪除】按鈕添加或刪除資料庫文件。

切換到【選項頁】、在這裡可以設置資料庫的排序規則、恢復模式、兼容級別和其他屬性。

切換到【文件組】頁,在這裡可以添加或刪除文件組。

完成以上操作後,單擊【確定】按鈕關閉【新建資料庫】對話框。至此「新建的數據」資料庫創建成功。新建的資料庫可以再【對象資源管理器】窗口看到。

原創文章,作者:RYFN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/148471.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RYFN的頭像RYFN
上一篇 2024-11-03 15:16
下一篇 2024-11-03 15:16

相關推薦

  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智慧,Python都扮演著重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28

發表回復

登錄後才能評論