MySQL數據庫自帶備份與恢復工具:MySQLdump.exe與mysql.exe


數據庫的備份工作是保護數據庫正常運行的關鍵,以下的文章主要講述的是MySQL數據庫備份的一些小妙招,我們大家都知道使用MySQL dump備份數據庫的用戶所需要的權限相對而言還是比較小的,只需要select與lock table的權限就足夠了。
所以可以創建一個備份數據庫的用戶,專門用於備份數據庫,這樣可以避免數據庫受到意外的破壞。
MySQLdump是備份MySQL數據庫的一種好工具。它相對於用phpmyadmin等備份工具更加快速,又避免受php.ini等的限制,在windows系統下還可以結合計划任務實現定時遠程備份數據庫。
在備份數據庫之前我們要做足准備功夫,首先創建了執行備份操作的數據庫用戶——root,密碼為:hust。其次,確定我們要備份哪個數據庫,放在哪里。然后,確定數據庫的備份文件要放到哪里。
假設我們的任務是要備份一個位於192.168.1.2服務器上,名稱為db_test的數據庫,並把備份文件放到D:\bak\的文件夾中。於是我們可以用以下的方法執行備份恢復操作:

1.數據的備份

在命令行模式下完成對數據的備份,使用的是 MYSQLDUMP 命令。通過該命令可以將數據以文 本文件的形式存儲到指定的文件夾下。 

    說明:要在命令行模式下操作 MySQL 數據庫, 必須要對電腦的環境變量進行設置 ,右擊 “我的電腦” , 

在彈 出的快捷菜單 中選擇 “ 屬性” 命令,在彈出的對話框 中選擇 “ 高級” 選項卡,然后在新彈出的

對話框 中單擊 “環境變量” 按鈕,在用 戶變量的文本 框中找到變量 PATH 並選中,單擊 “ 編輯”按 

紐,在變量 PATH 的變量值文本框中添加 “D:\AppServ\MySQL\bin” ( MySQL 數據庫中

bin 文件 夾的安裝路徑 ),然 后單擊 “確定 ”按紐。其中添加的 bin 文件夾的路徑根據自己安裝 MySQL

數椐庫的位置而定, (如果不想配置”環境變量“,則要定位到MySQLdump.exe所在的目錄打開命令提示符,只要在所在目錄按住shift鍵右鍵即可找到”在此處打開命令提示符“)

    注意 :

如果使用集成化的安裝包來配置 PHP 的開發壞境,那 么就不需要進行上述的配置操作, 因為

集成化安裝包 已經自行配置 完成。但是,如果是獨立安裝的 MySQL, 那 么就必須進行上述的 配置,

才能在命令行模式下操作 MySQL 數據庫。

通過 MYSQLDUMP 命令備份整個數據庫的操作步驟如下:

(1)我們可以使用windows自帶的命令提示符(調用命令提示符的方法有多種,最常用的就是點擊開始菜單,選擇“運行”,輸入cmd的命令就可以啟動了),在命令提示符中輸入以下命令:

    MySQLdump -uroot -phust -h 192.168.1.2 db_test > D:\bak\bakcup.sql 

在這段命令中:

MySQLdump 是myqldump的程序名了;(這里我用的是集成開發環境D:\AppServ\MySQL\bin目錄下)

-u 是數據庫的用戶名,后面緊跟着用戶名root;

-p 是數據庫的密碼,后面同樣緊跟着密碼,注意是-p和密碼之間不能有空格;

-h 是數據庫的地址,
如果沒有此項表明是備份本地的數據庫

db_test 要備份的數據庫名稱;

backup.sql  備份之后的文件,后綴也可以是.txt

> 表明該MySQL數據庫備份到后面的文件,緊跟當然是備份文件的地址了,注意要用絕對文件路徑,文件的后綴也可以用.txt。

一旦執行該命令后,MySQLdump立即執行備份操作。遠程備份數據庫要似乎網絡的情況,一般遠程備份需要一定的時間的。

如果把這個命令寫成批處理文件,通過windows的計划任務可以實現定時備份數據。

在windows下用MySQLdump備份數據庫,因為沒有gzip的壓縮引擎,因此不能對備份數據庫進行壓縮,因此如果備份文件多了要經常清理過期的MySQL數據庫備份文件。

(2)在PHP中備份數據庫

前面介紹的是從windows的”命令提示符“備份數據庫,那么在PHP中如何實現呢?

在PHP中備份數據庫,主要通過exec( )函數執行系統命令

exec()函數的格式為:

string exec(string command)

參數command為要執行的系統命令。這里為備分數據表的命令,下面舉例說說明:

<?php

$filename =$_POST[filename];//這里是用戶輸入的數據庫的備份名

 $mysqlstr = "mysqldump -uroot -phust db_wms >sql/".$_POST[filename];//這里使用的是相對路徑,(我將mysqldump.exe 復制到了本php文件路徑下)
//這里未指定主機,默認本機
 //$mysqlstr = "mysqldump -uroot -phust db_wms >D:/AppServ/www/wms/system/sql/".$_POST[filename];

 exec($mysqlstr);//
 echo "<script>alert('數據備份成功!');window.location='../desk.php';</script>";
?>

2.數據的恢復

(1)使用windows自帶的命令提示符

用的是 MySQL 命令。其命令格式如下:

mysql -uroot -proot db_database <F:\db_database.sql "

其中 mysq丨 是使用的命令, -u 后的 root 代表用戶名 ,-p 后的 root 代表密碼,db

database 代表數據庫名 (或 表名), “<” 號后面的 “F:\db_database.txt” 是數據庫備份文件存儲的位置。

下面介紹實現數據庫恢復的操作步驟:

(1)選擇 “ 開始”/ “ 運行”命令。

(2)在彈出的對話框中輸入 “cmd” ,單擊 “ 確定”按鈕,進入命令行模式。

( 3 ) 在命令行模式中直接輸入 “ mysql -uroot-proot db_database<F:\db_database.txt ”, 然后"Enter"

(2)在PHP中恢復數據庫

<?php


    $mysqlstr = "mysql -uroot -phust db_wms<sql/".$_POST[r_name];//$_POST[r_name]//為用戶選擇的用來恢復的文件名

    //echo $mysqlstr;

    exec($mysqlstr);

    echo "<script>alert('恢復成功');location='../desk.php'</script>";

?>














免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM