当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 最簡便的備份MySql資料庫方法

MSSQL
SQL Server中删除重复数据的几个方法
SQL Server 基础概念集
SQL Server导入导出
SQL SERVER实用技巧
sql server 常用函数
如何维护SQL Server的“交易日志”
SQL Server数据备份处理过程探讨
JSP中tomcat的SQL Server2000数据库连接池的配置
SQL Server服务器安装剖析
SQL Server 2005数据加密技术应用研究
SQL Server数据库的备份和恢复措施
SQL Server 2005性能测试实践
Jboss下MS SQL Server配置指导
Oracle和SQL Server 追求完美还是讲求实用
SQL Server服务器安装剖析
SQL Server:Oracle与SQL Server事务处理的比较
SQL Server:利用配置文件实现SQL Server与Oralce访问类的转换
SQL Server:测试SQL Server业务规则链接方法
SQL Server :SQL Server 2008高可用性解决方案优劣分析
SQLServer:数据库恢复

MSSQL 中的 最簡便的備份MySql資料庫方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 138 ::
收藏到网摘: n/a

使用MYSQL進行資料庫備份,有很正規的資料庫備份方法,同其他的資料庫伺服器有相同的概念,但有沒有想過,MySQL會有更簡捷的使用檔目錄的備份方法,而且又快有好。

一、資料備份捷徑

因為這個方法沒有得到官方正式文檔的驗證,我們暫稱為試驗吧。

目的:備份hostA主機中一個mysql資料庫TestA,並恢復到到hostB機中

試驗環境:

作業系統:WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0

在hostA中安裝mysql資料庫並建立TestA資料庫

hostB機安裝mysql資料庫,沒有TestA資料庫

方法步驟:

啟動phpMyAdmin察看HostA和HostB中的資料庫列表,在HostB中沒有TestA資料庫

找到HostA中mysql的安裝目錄,並找到資料庫目錄data

在我的試驗環境中,這個目錄是

C:\mysql\data

找到對應資料庫名稱的子目錄

C:\mysql\data\TestA

粘貼拷貝到HostB的Data目錄下,是HostA同HostB Mysql資料目錄下的檔相同

刷新HostB的phpMyAdmin察看一下資料庫列表,我們看到TestA已經出現,並且作查詢修改等操作都正常,備份恢復恢復成功

試驗結論:Mysql的資料庫可以通過檔形式保存,備份,恢復只要將相應檔目錄恢復即可,無需使用其他工具備份。

二、正規的方法(官方建議):

導出要用到MySQL的mysqldump工具,基本用法是:

代碼:

mysqldump [OPTIONS] database [tables]



如果你不給定任何表,整個資料庫將被導出。

通過執行mysqldump --help,你能得到你mysqldump的版本支援的選項表。

注意,如果你運行mysqldump沒有--quick或--opt選項,mysqldump將在導出結果前裝載整個結果集到記憶體中,如果你正在導出一個大的資料庫,這將可能是一個問題。

mysqldump支援下列選項:

--add-locks

在每個表導出之前增加LOCK TABLES並且之後UNLOCK TABLE。(為了使得更快地插入到MySQL)。

--add-drop-table

在每個create語句之前增加一個drop table。

--allow-keywords

允許創建是關鍵字的列名字。這由在列名前面加表名的方法做到。

-c, --complete-insert

使用完整的insert語句(用列名字)。

-C, --compress

如果客戶和伺服器均支援壓縮,壓縮兩者間所有的資訊。

--delayed

用INSERT DELAYED命令插入行。

-e, --extended-insert

使用全新多行INSERT語法。(給出更緊縮並且更快的插入語句)

-#, --debug[=option_string]

跟蹤程式的使用(為了調試)。

--help

顯示一條幫助消息並且退出。

--fields-terminated-by=...

--fields-enclosed-by=...

--fields-optionally-enclosed-by=...

--fields-escaped-by=...

--fields-terminated-by=...

這些選擇與-T選擇一起使用,並且有相應的LOAD DATA INFILE子句相同的含義。

LOAD DATA INFILE語法。

-F, --flush-logs

在開始導出前,洗掉在MySQL伺服器中的日誌檔。

-f, --force,

即使我們在一個表導出期間得到一個SQL錯誤,繼續。

-h, --host=..

從命名的主機上的MySQL伺服器導出資料。缺省主機是localhost。

-l, --lock-tables.

為開始導出鎖定所有表。

-t, --no-create-info

不寫入表創建資訊(CREATE TABLE語句)

-d, --no-data

不寫入表的任何行資訊。如果你只想得到一個表的結構的導出,這是很有用的!

--opt

同--quick --add-drop-table --add-locks --extended-insert --lock-tables。

應該給你為讀入一個MySQL伺服器的盡可能最快的導出。

-pyour_pass, --password[=your_pass]

與伺服器連接時使用的口令。如果你不指定“=your_pass”部分,mysqldump需要來自終端的口令。

-P port_num, --port=port_num

與一台主機連接時使用的TCP/IP埠號。(這用於連接到localhost以外的主機,因為它使用 Unix套接字。)

-q, --quick

不緩衝查詢,直接導出至stdout;使用mysql_use_result()做它。

-S /path/to/socket, --socket=/path/to/socket

與localhost連接時(它是缺省主機)使用的套接字檔。

-T, --tab=path-to-some-directory

對於每個給定的表,創建一個table_name.sql檔,它包含SQL CREATE 命令,和一個table_name.txt檔,它包含資料。 注意:這只有在mysqldump運行在mysqld守護進程運行的同一台機器上的時候才工作。.txt檔的格式根據--fields-xxx和--lines--xxx選項來