熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

最簡便的MySql數據庫備份的方法

2022-06-13   來源: MySQL 

  使用MYSQL進行數據庫備份又很正規的數據庫備份方法同其他的數據庫服務器有相同的概念但有沒有想過MySQL會有更簡捷的使用文件目錄的備份方法而且又快有好
  
  數據備份捷徑
  因為這個方法沒有得到官方正式文檔的驗證我們暫稱為試驗吧
  
  目的備份hostA主機中一個mysql數據庫TestA並恢復到到hostB機中
  
  試驗環境
  
  操作系統WinNTMysqlphpMyAdmin
  
  在hostA中安裝mysql數據庫並建立TestA數據庫
  
  hostB機安裝mysql數據庫沒有TestA數據庫
  
  方法步驟
  
  啟動phpMyAdmin察看HostA和HostB中的數據庫列表在HostB中沒有TestA數據庫
  
  找到HostA中mysql的安裝目錄並找到數據庫目錄data
  
  在我的試驗環境中這個目錄是
  
  C:mysqldata
  
  找到對應數據庫名稱的子目錄
  
  C:mysqldataTestA
  
  粘貼拷貝到HostB的Data目錄下是HostA同HostB Mysql數據目錄下的文件相同
  
  刷新HostB的phpMyAdmin察看一下數據庫列表我們看到TestA已經出現並且作查詢修改等操作都正常備份恢復恢復成功
  
  試驗結論Mysql的數據庫可以通過文件形式保存備份恢復只要將相應文件目錄恢復即可無需使用其它工具備份
  
  正規的方法(官方建議)
  導出要用到MySQL的mysqldump工具基本用法是
  
  mysqldump [OPTIONS] database [tables]
  
  如果你不給定任何表整個數據庫將被導出
  
  通過執行mysqldump help你能得到你mysqldump的版本支持的選項表
  
  注意如果你運行mysqldump沒有quick或opt選項mysqldump將在導出結果前裝載整個結果集到內存中如果你正在導出一個大的數據庫這將可能是一個問題
  
  mysqldump支持下列選項
  
  addlocks
  
  在每個表導出之前增加LOCK TABLES並且之後UNLOCK TABLE(為了使得更快地插入到MySQL)
  
  adddroptable
  
  在每個create語句之前增加一個drop table
  
  allowkeywords
  
  允許創建是關鍵詞的列名字這由在列名前面加表名的方法做到
  
  c completeinsert
  
  使用完整的insert語句(用列名字)
  
  C compress
  
  如果客戶和服務器均支持壓縮壓縮兩者間所有的信息
  
  delayed
  
  用INSERT DELAYED命令插入行
  
  e extendedinsert
  
  使用全新多行INSERT語法(給出更緊縮並且更快的插入語句)
  
  # debug[=option_string]
  
  跟蹤程序的使用(為了調試)
  
  help
  
  顯示一條幫助消息並且退出
  
  fieldsterminatedby=
  
  fieldsenclosedby=
  
  fieldsoptionallyenclosedby=
  
  fieldsescapedby=
  
  fieldsterminatedby=
  
  這些選擇與T選擇一起使用並且有相應的LOAD DATA INFILE子句相同的含義
  
  LOAD DATA INFILE語法
  
  F flushlogs
  
  在開始導出前洗掉在MySQL服務器中的日志文件
  
  f force
  
  即使我們在一個表導出期間得到一個SQL錯誤繼續
  
  h host=
  
  從命名的主機上的MySQL服務器導出數據缺省主機是localhost
  
  l locktables
  
  為開始導出鎖定所有表
  
  t nocreateinfo
  
  不寫入表創建信息(CREATE TABLE語句)
  
  d nodata
  
  不寫入表的任何行信息如果你只想得到一個表的結構的導出這是很有用的!
  
  opt
  
  同quick adddroptable addlocks extendedinsert locktables
  
  應該給你為讀入一個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=pathtosomedirectory
  
  對於每個給定的表創建一個table_namesql文件它包含SQL CREATE 命令和一個table_nametxt文件它包含數據 注意這只有在mysqldump運行在mysqld守護進程運行的同一台機器上的時候才工作txt文件的格式根據fieldsxxx和linesxxx選項來定
  
  u user_name user=user_name
  
  與服務器連接時MySQL使用的用戶名缺省值是你的Unix登錄名
  
  O var=option setvariable var=option
  
  設置一個變量的值可能的變量被列在下面
  
  v verbose
  
  冗長模式打印出程序所做的更多的信息
  
  V version
  
  打印版本信息並且退出
  
  w where=wherecondition
  
  只導出被選擇了的記錄注意引號是強制的!
  
  where=user=jimf wuserid> wuserid<
  
  最常見的mysqldump使用可能制作整個數據庫的一個備份
  
  mysqldump opt database > backupfilesql
  
  但是它對用來自於一個數據庫的信息充實另外一個MySQL數據庫也是有用的
  
  mysqldump opt database   mysql host=remotehost C database
  
  由於mysqldump導出的是完整的SQL語句所以用mysql客戶程序很容易就能把數據導入了
  
  mysqladmin create target_db_name
  
  mysql target_db_name < backupfilesql

From:http://tw.wingwit.com/Article/program/MySQL/201311/29422.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.