首頁 資料庫 mysql教程 使用mysqldump指令實例詳解

使用mysqldump指令實例詳解

Jun 30, 2017 pm 03:20 PM
備份 恢復

1、各種用法說明

     A. 最簡單的用法:

mysqldump -uroot -pPassword [database name] 
> [dump file]
登入後複製

     上述指令將指定資料庫備份到某dump文件(轉儲檔案)中,例如:

mysqldump -uroot -p123 test > test.dump
登入後複製

     產生的test.dump檔案中包含建表語句(產生資料庫結構哦)和插入資料的insert語句。

 

     B. --opt

     若加上--opt參數則產生的dump檔案中稍有不同:

     .建表語句包含drop table if exists tableName

     . insert之前包含一個鎖定表語句lock tables tableName write,insert之後包含unlock tables


 

     使用下面的指令可以將host1上的sourceDb複製到host2的targetDb,前提是host2主機上已經建立targetDb資料庫:

mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb
登入後複製
##     -C指示主機間的資料傳輸使用資料壓縮

 

     D. 只備份表結構

mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump
登入後複製
##     將只備份資料表結構。 --databases指示主機上要備份的資料庫。如果要備份某個MySQL主機上的所有資料庫可以使用--all-databases選項,如下:

mysqldump --all-databases> test.dump
登入後複製

 

     E. 從備份檔案復原資料庫

mysql [database name] < [backup file name]
登入後複製

 
#  

備份多個資料庫

  語法:

##  語法:

#

mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql
登入後複製

  加上了--databases選項,然後後面跟著多個資料庫

mysqldump -u root -p --databases test mysql > D:\backup.sql
登入後複製
  備份所有資料庫

  mysqldump指令備份所有資料庫的語法如下:

mysqldump -u username -p -all-databases > BackupName.sql
登入後複製
  範例:

mysqldump -u -root -p -all-databases > D:\all.sql
登入後複製

 

## 

2、

結合Linux的cron指令實現定時備份

    例如需要在每天凌晨1:30備份某個主機上的所有資料庫並壓縮dump檔案為gz格式,那麼可在/etc/ crontab設定檔中加入下方程式碼行:
30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz
登入後複製

    前面5個參數分別表示分鐘、小時、日、月、年,星號表示任意。 date '+%m-%d-%Y'取得目前日期的MM-DD-YYYY格式。

 

3、

一個完整的Shell腳本備份MySQL資料庫範例
#vi /backup/backup.sh#!bin/bash
cd /backupecho "You are in backup dir"mv backup* /oldbackupecho "Old dbs are moved to oldbackup folder"File = backup-$Now.sql
mysqldump -u user -p password database-name > $Fileecho "Your database backup successfully completed"
登入後複製

     上面腳本檔案儲存為backup.sh ,並且系統中已經建立兩個目錄/olcbackup和/backup。每次執行backup.sh時都會先將/backup目錄下所有名稱為backup開頭的檔案移到/oldbackup目錄。

      為上述腳本製定執行計畫如下:
#crontab -e30 1 * * * /backup.sh
登入後複製

 

4、

mysqldump全量備份+mysqlbinlog二進位日誌增量備份

    從mysqldump備份檔案還原資料會遺失掉從備份點開始的更新數據,所以還需要結合mysqlbinlog二進位日誌增量備份。確保my.ini或my.cnf中包含下面的配置以啟用二進位日誌,或者mysqld ---log-bin:
[mysqld]
log-bin=mysql-bin
登入後複製

    mysqldump命令必須帶上--flush-logs選項以產生新的二進位日誌檔案:
mysqldump --single-transaction --flush-logs --master-data=2 > backup.sql
登入後複製

    這樣產生的增量二進位日誌檔案例如為mysql-bin.000003,那麼恢復資料時如下:
#1
2
shell> mysql -uroot -pPwd < backup_sunday_1_PM.sql
shell> mysqlbinlog mysql-bin.000003 | mysql -uroot -pPwd

######################################################################################################################################################################################4 ##################   此外mysqlbinlog也可以指定--start-date、--stop-date、--start-position和--stop-position參數,用於精確恢復資料到某個時刻之前或跳過中間某個出問題時間段恢復數據,直接摘錄MySQL文檔說明中相關內容如下:######
5.9.3.1. 指定恢复时间
对于MySQL 4.1.4,可以在mysqlbinlog语句中通过--start-date和--stop-date选项指定DATETIME格式的起止时间。举例说明,假设在今天上午10:00(今天是2005年4月20日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:
mysqlbinlog --stop-date="2005-04-20 9:59:59" /var/log/mysql/bin.123456 \
     | mysql -u root -pmypwd
该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。如果你没有检测到几个小时后输入的错误的SQL语句,可能你想要恢复后面发生的活动。根据这些,你可以用起使日期和时间再次运行mysqlbinlog:

mysqlbinlog --start-date="2005-04-20 10:01:00" /var/log/mysql/bin.123456 \
     | mysql -u root -pmypwd \
在该行中,从上午10:01登录的SQL语句将运行。组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。下一节介绍如何实现。

5.9.3.2. 指定恢复位置
也可以不指定日期和时间,而使用mysqlbinlog的选项--start-position和--stop-position来指定日志位置。它们的作用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法,特别是当由于破坏性SQL语句同时发生许多事务的时候。要想确定位置号,可以运行mysqlbinlog寻找执行了不期望的事务的时间范围,但应将结果重新指向文本文件以便进行检查。操作方法为:
mysqlbinlog --start-date="2005-04-20 9:55:00" --stop-date="2005-04-20 10:05:00" \
      /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
该命令将在/tmp目录创建小的文本文件,将显示执行了错误的SQL语句时的SQL语句。你可以用文本编辑器打开该文件,寻找你不要想重复的语句。如果二进制日志中的位置号用于停止和继续恢复操作,应进行注释。用log_pos加一个数字来标记位置。使用位置号恢复了以前的备份文件后,你应从命令行输入下面内容:

mysqlbinlog --stop-position="368312" /var/log/mysql/bin.123456 \
    | mysql -u root -pmypwd 
 
mysqlbinlog --start-position="368315" /var/log/mysql/bin.123456 \
    | mysql -u root -pmypwd \ 
上面的第1行将恢复到停止位置为止的所有事务。下一行将恢复从给定的起始位置直到二进制日志结束的所有事务。因为mysqlbinlog的输出包括每个SQL语句记录之前的SET TIMESTAMP语句,恢复的数据和相关MySQL日志将反应事务执行的原时间。
登入後複製
###

以上是使用mysqldump指令實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

微信檔案過期怎麼恢復 微信的過期檔案能恢復嗎 微信檔案過期怎麼恢復 微信的過期檔案能恢復嗎 Feb 22, 2024 pm 02:46 PM

開啟微信,在我中選擇設置,選擇通用後選擇儲存空間,在儲存空間選擇管理,選擇要恢復檔案的對話選擇感嘆號圖示。教學適用型號:iPhone13系統:iOS15.3版本:微信8.0.24解析1先開啟微信,在我的頁面中點選設定選項。 2接著在設定頁面中找到並點選通用選項。 3然後在通用頁面中點選儲存空間。 4接下來在儲存空間頁面中點選管理。 5最後選擇要恢復檔案的對話,點選右側的感嘆號圖示。補充:微信文件一般幾天過期1要是微信接收的文件並沒有點開過的情況下,那在七十二鐘頭之後微信系統會清除掉,要是己經查看了微信

如何恢復無痕模式下的瀏覽記錄 如何恢復無痕模式下的瀏覽記錄 Feb 19, 2024 pm 04:22 PM

無痕瀏覽是一種非常方便的瀏覽方式,可以在使用電腦或行動裝置上網時保護個人隱私。無痕瀏覽模式通常會阻止瀏覽器記錄存取歷史記錄、保存Cookie和快取文件,以及防止正在瀏覽的網站在瀏覽器中留下任何痕跡。但是,對於一些特殊的情況,我們可能需要恢復無痕瀏覽的瀏覽記錄。首先,我們需要先明確一點:無痕瀏覽模式的目的是保護隱私,防止他人從瀏覽器取得使用者的上網記錄。因此,無痕瀏

如何備份谷歌瀏覽器的擴充程序 如何備份谷歌瀏覽器的擴充程序 Jan 30, 2024 pm 12:36 PM

谷歌瀏覽器擴充功能如何備份?對於大多數Google瀏覽器用戶來說,日常使用時會安裝或多或少的插件,插件的存在可以提升我們的使用體驗。當我們重裝系統或瀏覽器時,這些插件卻無法保留,重新下載安裝又比較麻煩,那麼有沒有辦法備份目前已安裝的插件呢?下面就為大家帶來操作方法。備份chrome插件的教學方法先打開Google瀏覽器,點擊右上角的選單,選擇更多工具-擴充功能。點擊擴充功能頁面上方的打包擴充功能。在C:UsersAdministratorAppDataLocalGoogleChromeUserDataDe

抖音怎麼恢復聊天火花 抖音怎麼恢復聊天火花 Mar 16, 2024 pm 01:25 PM

在抖音這個充滿創意與活力的短影片平台上,我們不僅可以欣賞到各種精彩內容,還能與志同道合的朋友展開深入的交流。其中,聊天火花作為衡量雙方互動熱度的重要指標,常常在不經意間點燃我們與好友之間的情感連結。然而,有時由於一些原因,聊天火花可能會斷開,那麼如果我們想要恢復聊天火花究竟該如何操作呢,這篇教程攻略就將為大家帶來詳細的內容攻略介紹,希望能幫助到大家。抖音聊天火花斷了怎麼恢復? 1.開啟抖音的訊息頁面,選擇好友聊天。 2、互發訊息聊天。 3.連續發送訊息3天,就可以獲得火花標識。在3天基礎上,互發圖片或視

小米雲相簿怎麼恢復到本地 小米雲相簿怎麼恢復到本地 Feb 24, 2024 pm 03:28 PM

小米雲相簿怎麼恢復到本地?小米雲相簿APP中是可以恢復到本地,但是多數的小伙伴不知道小米雲相冊如何恢復到本地中,接下來就是小編為用戶帶來的小米雲相冊恢復到本地方法圖文教程,有興趣的用戶快來一起看看吧!小米雲相簿怎麼恢復到本地1、先打開小米手機中的設定功能,主介面選擇【個人頭像】;2、然後進入到小米帳號的介面,點選【雲端服務】功能;3、接著跳到小米雲端服務的功能,選擇其中的【雲端備份】;4、最後在如下圖所示的介面,點選【雲端相簿】即可恢復相簿到本地。

恢復win11預設頭像的教程 恢復win11預設頭像的教程 Jan 02, 2024 pm 12:43 PM

如果我們更換了自己的系統帳戶頭像,但是不想要了,結果找不到win11怎麼更改預設頭像了,其實我們只要找到預設頭像的資料夾就可以恢復了。 win11頭像恢復預設1、先點開底部任務欄的“Windows標誌”2、接著在其中找到並打開“設定”3、然後進入左邊欄的“帳戶”4、隨後點開右側的“帳戶資訊” 5.開啟後,點選選擇照片中的「瀏覽檔案」6、最後進入「C:\ProgramData\Microsoft\UserAccountPictures」路徑就可以找到系統預設頭像圖片了。

win10怎麼恢復預設壁紙 win10怎麼恢復預設壁紙 Feb 10, 2024 pm 10:51 PM

Windows10的2019年5月更新有新的、更亮的預設桌面背景。它看起來很棒-帶有新的淺色主題。如果您使用Windows10的深色主題,您可能需要更深的背景。奇怪的是,Windows10的原始桌面背景已從最新版本的Windows10中刪除。您必須從Web下載它或從舊的Windows10PC複製其檔案。儘管我們無法在Microsoft的官方網站上找到此桌布圖片,但您可以從其他來源下載它。我們在Imgur上找到了一份4K解析度的Windows10原始桌面桌布的副本。此外,還有其他尺寸和更多預設壁

如何在Windows 11的檔案總管中刪除啟動備份 如何在Windows 11的檔案總管中刪除啟動備份 Feb 18, 2024 pm 05:40 PM

如果您希望在Windows11的檔案總管中隱藏「開始備份」選項,以下是您可以採取的方法。有多種途徑可用於在檔案總管中停用或隱藏啟動備份選項,我們將簡要列出一些方法,以幫助您快速完成此任務。在開始之前,您需要了解這個選項與OneDrive密切相關。一旦您開啟某個庫資料夾(例如Document、Pictures、Music等),它會立即顯示在檔案總管的路徑中。如何在Windows11的檔案總管中刪除啟動備份要在Windows11的檔案總管中刪除啟動備份,請依照下列方法操

See all articles