Jquery中文網 www.lfcgx.club
Jquery中文網 >  數據庫  >  mysql  >  正文 Mysql 備份與恢復實例教程

Mysql 備份與恢復實例教程

發布時間:2015-09-21   編輯:www.lfcgx.club
本文介紹mysql的備份與恢復,講解mysqldump命令的使用,供大家學習參考。

    本文介紹mysql的備份與恢復,講解mysqldump命令的使用,供大家學習參考。

邏輯備份:
1.mysqldump(數據導出工具)
  mysqldump options db_name[table_name]//備份單個數據庫
  mysqldump 選項 --database database-name1 [databases-name2]....//備份指定的數據庫一個或者多個
  mysqldump 選項 --all-database //備份所有的數據庫

  鏈接選項:
  -u :指定用戶名
   -p:指定密碼
   -h:指定服務器ip或者域名
   -P(大寫):指定端口
eg: /usr/bin/mysqldump -u root -h 202.194.132.237 -P 3306 -p BBS user>/home/wuxiaoxiao/user.txt

輸出內容選項:
--add-drop-database:每個數據庫創建語句之前加上drop database語句
--add-drop-table:每個表創建語句之前加上drop table語句
-n:不包含數據庫的創建語句
-t:不包含數據表的創建語句
-d:不包含數據

輸出格式選項:
 --compact:使輸出結果簡潔
 -c --compact-insert:使輸出文件中的insert語句包含字段名
 -T:將數據庫表中的數據備份為單純的數據文本和建表sql倆個文件
   --fields-terminated-by=name(域分割符)
   --fields-enclosed-by=name(域引用符)
   --fields-optionally-enclosed-by=name(域可選引用符)
   --fields-escaped-by=name(轉移字符)
eg: /usr/bin/mysqldump -u root -h 202.194.132.237 -P 3306 -p BBS user -T ./bak

字符集選項:
--default-character-set=name:設置導出的客戶端字符集
eg: mysql -u root -p --compact --default-character-set=utf8 BBS user > test.txt

其他選項:
-F:備份前刷新日志
-l:給所有表加讀鎖(備份期間使用,使備份的數據保持一致性)

備份:
備份所有數據庫:
mysqldump -u root -p  --all-database  >  test.sql

備份數據庫test
mysqldump -u root -p  test  >  test.sql

備份數據庫test下的temp表:
mysqldump -u root -p  test demp >  test.sql

備份數據庫下的所有表為逗號分割的文本,備份到/temp
mysqldump -u root -p test -T /temp --fields-terminated-by ','

完全恢復:
msyql -u root -p < bakfile
注意:將備份恢復后數據并不完整,還需要將備份后執行的日志進行重做
mysqlbinlog binlog-file | mysql -u root -p***

舉個完整的mysqldump備份和恢復的例子:
 

復制代碼 代碼如下:
上午9點備份數據庫
mysqldump -u root -p -l -F test > test.dmp
9點半備份完畢,然后想數據庫中插入數據
10點數據庫突然故障,數據無法訪問,需要恢復備份
mysql -u root -p test < test.dmp
恢復后的數據并不完整,9點半插入的數據并沒有恢復
使用mysqlbinlog恢復自mysqldump備份以來的binlog
mysqlbinlog binlogfilename | mysql -u root -p test

基于時間點恢復:
如果上午10點發生了誤操作.可以用下面語句進行備份和binlog將數據庫恢復到故障前:
mysqlbinlog --stop-date="2005-04-20 9:59:59" binlogfile | mysql -u root -p test
跳過故障的時間點,繼續執行后面的binlog,完成恢復
mysqlbinlog --start-date="2005-04-20 9:59:59" binlogfile | mysql -u root -p test

基于位置恢復:
mysqlbinlog --start-date="2005-04-20 9:55:59" --stop-date="2005-04-20 10:05:00" binlogfile > test.sql
查看此文件,找出出錯語句前后的位置號,例如是368312,368315
mysqlbinlog --stop-position="368312" binlogfile | mysql -u root -p test
mysqlbinlog --start-position="368315" binlogfile | mysql -u root -p test

表的導入和導出:
導出:
    mysqldump -u username -p -T target_dir dbname tablename [options]
options:
   --fields-terminated-by=name(域分割符)
   --fields-enclosed-by=name(域引用符)
   --fields-optionally-enclosed-by=name(域可選引用符)
   --fields-escaped-by=name(轉移字符)
備份數據庫下的所有表為逗號分割的文本,備份到/temp
eg: mysqldump -u root -p -T /temp test --fields-terminated-by ',' --fields-optionally-enclosed-by '"'

導入:
   msyqlimport -u root -p [LOCAL] dbname order_tab.txt [options]
OPTIONS:
   --fields-terminated-by=name(域分割符)
   --fields-enclosed-by=name(域引用符)
   --fields-optionally-enclosed-by=name(域可選引用符)
   --fields-escaped-by=name(轉移字符)
eg: mysqlimport -u root -p test order.txt --fields-terminated-by=',' --fields-enclosed-by='"'

您可能感興趣的文章:
Mysql 備份與恢復實例教程
一例mysql數據庫備份的shell腳本
vps自動備份shell腳本代碼
mysql備份與還原詳解
MySQL實現實時備份的配置過程詳解
忘記MySql的root密碼的解決方法
DB2實驗教程:數據庫恢復
centos5.4下mysql主從復制配置分享
linux下mysql自動備份與ftp上傳的shell腳本
導出mysql 數據結構的例子

[關閉]
矮木头走势图
金证通配资 雪豫园斯诺克比分直播 最新竞彩比分 15选5开奖结果奖 广东麻将打法视频 河北十一选五历史遗 东北5毛钱麻将怎么算账 好运三走势图 北单 8波篮球即时比分 36选7走势图50 nba0708总决赛比分 湖北打的是什么麻将 贵州11选5 一起宁德麻将app 山东11选5计划手