本文的主題將會圍繞 Discuz 備份為主,連帶教給大家大部分 php+mysql 程式的備份方法,介紹順序為從虛擬主機到獨立主機。

虛擬主機使用者

這裡虛擬主機的環境為星外 (7i24) 控制面板,其他控制面板大同小異。

第一種是最簡單的備份方法,開啟 discuz 的後臺或者 ucenter 的後臺,

點選提交備份即可,如果 ucenter 和 discuz 安裝在同一空間 (主機),推薦在 ucenter 後臺連帶論壇+ucenter 資料一起備份,因為 discuz7.0 之後使用者資料均在 ucenter 資料庫中。

備份完成後會提示備份的路徑,請儘快下載並在空間中刪除.sql 備份檔案,但是這樣備份的缺點是如果論壇資料量較大的話,會產生幾十個備份檔案,後續整理上會很麻煩,消耗時間也非常長。另外還需要備份 ucenter 的頭像目錄及 discuz 的上傳目錄。

恢復這種資料的方法就是上傳備份的.sql 檔案,然後在論壇後臺或者 tools.php 中恢復資料。

第二種是利用虛擬主機控制面板自帶的資料庫管理面板備份/還原/匯入資料庫功能。

然後登陸臨時建立的 ftp 空間即可看到備份好的.sql 檔案。下載儲存即可。

恢復方法是點選後臺的從備份中還原,如果轉移空間了,將這個.sql 檔案傳到網站的根目錄,將下面的程式碼編輯正確並另存為 import.php,執行它提示 import ok,則代表匯入成功。

<?
system("mysql -uroot -pmypassword database < a.sql");
print "import ok";
?>

§

第三種是進入 phpmyadmin 進行備份,點選資料庫管理面板的高階管理即可進入。

首先在左邊選擇所屬的資料庫名稱,這裡是 discuz 這個資料庫。

然後點選右邊中間位置的匯出按鈕,開啟匯出頁面。

一般來說直接拉到最下面,選擇另存為檔案,並選擇下面壓縮為 gzip 壓縮,點選執行。

就會彈出提示另存為,儲存即可。

恢復方法同樣是登陸 phpmyadmin,點選匯入。 選擇這個檔案。如果匯出檔案很大,則解壓成.sql 檔案,同樣第二種方法末尾的辦法用 php 指令碼匯入。

第四種,利用第三方軟體進行備份。

1 、我們可以到我提供的地址下載帝國備份,然後上傳到網站的一個目錄下。

我們用預設的 admin 123456 來登陸,登陸後會提示去設定資料庫連線的賬號密碼。 (資料庫賬號密碼如果不知道的可以看 discuz 根目錄的 config.inc.php)

我們可以看到我們的資料庫,點選後面的備份資料。一般來說引數都不需要修改,直接拉到最下面點選開始備份即可。備份好後,可以上 ftp 將備份目錄拖到本地。

恢復方法是先上傳網站程式,然後上傳帝國備份王,最後上傳備份的資料庫路徑到帝國備份王目錄下,恢復即可

§

2 、在我的下載頁面下載 Navicat 軟體

連線遠端 mysql 伺服器,星外使用者需要在後臺開啟遠端訪問。

獲取自己的 IP 可以訪問 http://ip.sudu.us/

連線後同樣可以看到我們的資料庫。 雙擊資料庫名稱。

選擇備份。然後點選建立備份。

選擇開始。

我們就可以看到備份成功,這個備份取決於本地連線伺服器網速。

獨立主機使用者

Windows 主機

第一種是同虛擬主機第四種方法,使用 Navicat 軟體。

第二種使用命令性匯出為.sql 檔案

使用 cmd 進入 mysql 的 bin 目錄,輸入以下命令匯出

mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔名

匯入在 bin 目錄下使用命令

mysql -u 使用者名稱 –p

use 目標資料庫名;

source 匯入的檔名;

第三種方法是在停止 mysql 服務。直接複製 mysql data 下相應的資料,恢復直接貼上回來即可。 (但在備份期間會中斷訪問)

Linux 主機 (這裡以 CentOS 為例)

第一種, 停止 mysql 服務,使用 cp 命令複製 mysql 原始檔至備份目錄,如

cp/usr/local/mysql/var /data1/bak/20100801/mysql

cp /data1/web /data1/bak/20100801/web

第二種,同 windows 主機第三種,使用命令匯出為.sql 檔案

cd/usr/local/mysql/var

mysqldump -u root -p discuz>discuz.sql

還原方法:

cd/usr/local/mysql/var

mysql -u root -p discuz<discuz.sql

到這裡,本文已經差不多結束了,限於本人水平有限,一些小的錯誤在所難免,不足之處敬請諒解。