導航:首頁 > 編程語言 > php資料庫備份與恢復

php資料庫備份與恢復

發布時間:2022-09-09 16:15:53

① 如何用php進行數據備份

1、如果伺服器允許mysqlmp 並且沒有禁止PHP的shell_exec()這個函數的話
直接在PHP裡面執行mysqlmp就可以了。

2、通過mysql_query('show tables')的返回值遍歷每個表,循環對每個表使用查詢語句
select * into outfile '路徑/文件名' from 表名
缺點是這樣得到的是純數據,恢復數據的時候你需要額外再寫腳本

3、同樣通過show tables返回表名,遍歷每個表,通過select 語句查詢,然後逐條結果處理,比如手工添加drop table 和create table 以及insert into等等,然後再寫入文件。這樣得到的備份數據是比較接近mysqlmp的結果的,各種工具都可以用來恢復數據。缺點是如果資料庫太大的話,效率不好說

② 什麼是數據的備份與恢復

數據備份就是把一個資料庫里的東西,在某個時間資料庫管理軟體復制完全另外一個一樣的。

恢復是自從備份了資料庫後,使用資料庫的過程中發現出現了點小問題,導致資料庫有些信息丟失了,並且現在的資料庫中找不到這些信息了,這個時候就可以用備份的資料庫來恢復下這些丟失的信息了。

數據丟失原因:

1、人為誤操作,有時候在使用計算機的過程中不小心刪除了文件,或者不小心將分區進行格式化操作,導致數據丟失。

2、惡意程序的破壞,最常見的惡意程序就是病毒。通常一般病毒是不會造成數據丟失的,但有些病毒有可能會造成硬碟鎖死、分區丟失或數據丟失。

3、系統或軟體錯誤,如在工作中,由於操作系統或應用程序自身存在的BUG引起的死機,會造成工作文檔丟失等現象,還有在升級系統或更新應用程序時有時會帶來一些如影響系統兼容性和穩定性的問題。

以上內容參考網路——數據恢復,網路——數據備份

③ php的後台為什麼要對數據走備份和恢復的步驟

因為你在本地的時候,資料庫是本地的。你在網上的時候,資料庫是另一個了。所以你在本地修改的內容,和網上網站鏈接的資料庫不在同一個地方。

所以,你要備份,把本地的數據抄襲一份,然後到了網上,再抄進網上那個資料庫。

另外,弄到網上還需要重裝,或者直接修改配置文件里的資料庫帳號密碼與網上的資料庫對接上即可。

本地備份然後上傳,網上還原,你在建站時候可以,但是將來數據多了,盡量不要如此。不然數據不一致會導致重要數據丟失。

④ php怎麼備份資料庫

1.打開資料庫備份頁面
//php代碼,導出資料庫
public function exportSql() {
$dbName = C('DB_NAME'); //讀取配置文件中的資料庫用戶名、密碼、資料庫名
$dbUser = C('DB_USER');
$dbPwd = C('DB_PWD');
$fileName = date("Y-m-d")."_".$dbName.".sql";
$mpFileName = "./sql_backup/".$fileName;
exec("D:/xampp/mysql/bin/mysqlmp -u$dbUser -p$dbPwd $dbName > $mpFileName");
}

2.php exec函數,執行外部程序命令
exec(「D:/xampp/mysql/bin/mysqlmp -u$dbUser -p$dbPwd $dbName > $mpFileName」);
此處執行mysqlmp命令,導出資料庫到$mpFileName中,「D:/xampp/mysql/bin/」為mysqlmp所在位置,「-u$dbUser -p$dbPwd」資料庫的用戶名和密碼(中間不要加空格),$dbName為要導出資料庫的名字

⑤ 如何進行資料庫備份和恢復 mysql

MySQL備份和還原,都是利用mysqlmp、mysql和source命令來完成的。
1.Win32下MySQL的備份與還原
1.1 備份
開始菜單 | 運行 | cmd |利用「cd /Program Files/MySQL/MySQL Server 5.0/bin」命令進入bin文件夾 | 利用「mysqlmp -u 用戶名 -p databasename >exportfilename」導出資料庫到文件,如mysqlmp -u root -p voice>voice.sql,然後輸入密碼即可開始導出。

1.2 還原
進入MySQL Command Line Client,輸入密碼,進入到「mysql>」,輸入命令"show databases;",回車,看看有些什麼資料庫;建立你要還原的資料庫,輸入"create database voice;",回車;切換到剛建立的資料庫,輸入"use voice;",回車;導入數據,輸入"source voice.sql;",回車,開始導入,再次出現"mysql>"並且沒有提示錯誤即還原成功。

2.Linux下MySQL的備份與還原
2.1 備份
[root@localhost ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據自己的MySQL的安裝情況調整目錄)
[root@localhost mysql]# mysqlmp -u root -p voice>voice.sql,輸入密碼即可。
2.2 還原
法一:
[root@localhost ~]# mysql -u root -p 回車,輸入密碼,進入MySQL的控制台"mysql>",同1.2還原。
法二:
[root@localhost ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據自己的MySQL的安裝情況調整目錄)
[root@localhost mysql]# mysql -u root -p voice<voice.sql,輸入密碼即可。

⑥ php,mysql資料庫里,導出、導入資料庫報錯!怎樣備份還原資料庫

你這是主鍵重復了。如果要全部恢復,那你可以先將表中的數據都刪除掉,然後整體恢復。如果只是選擇性的恢復一條,那建議你還是手動操作吧。
你操作的表,設置了主鍵,而主鍵是不允許重復的。

⑦ php資料庫備份還原失敗~

php簡單備份與還原MySql的方法具體如下:
一、備份:
<?php
header("content-Type:text/html;charset=utf-8");
//備份資料庫
$host="localhost";
$user="root";//資料庫賬號
$password="123456";//資料庫密碼
$dbname="test";//資料庫名稱
//這里的賬號、密碼、名稱都是從頁面傳過來的
if(!mysql_connect($host,$user,$password))//連接mysql資料庫
{
echo'資料庫連接失敗,請核對後再試';
exit;
}
if(!mysql_select_db($dbname))//是否存在該資料庫
{
echo'不存在資料庫:'.$dbname.',請核對後再試';
exit;
}
mysql_query("setnames'utf8'");
$mysql="setcharsetutf8; ";
$q1=mysql_query("showtables");
while($t=mysql_fetch_array($q1)){
$table=$t[0];
$q2=mysql_query("showcreatetable`$table`");
$sql=mysql_fetch_array($q2);
$mysql.=$sql['CreateTable']."; ";
$q3=mysql_query("select*from`$table`");
while($data=mysql_fetch_assoc($q3)){
$keys=array_keys($data);
$keys=array_map('addslashes',$keys);
$keys=join('`,`',$keys);
$keys="`".$keys."`";
$vals=array_values($data);
$vals=array_map('addslashes',$vals);
$vals=join("','",$vals);
$vals="'".$vals."'";
$mysql.="insertinto`$table`($keys)values($vals); ";
}
}
$filename="data/".$dbname.date('Ymjgi').".sql";//存放路徑,默認存放到項目最外層
$fp=fopen($filename,'w');
fputs($fp,$mysql);
fclose($fp);
echo"數據備份成功";
?>
二、還原
<!--
author:果凍
qq:52091199
blog:http://wyg517.blog.163.com
-->
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<?php
$filename="test20101216923.sql";
$host="localhost";//主機名
$user="root";//MYSQL用戶名
$password="123456";//密碼
$dbname="test";//在此指定您要恢復的資料庫名,不存在則必須先創建,請自已修改資料庫名
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
$mysql_file="data/".$filename;//指定要恢復的MySQL備份文件路徑,請自已修改此路徑
restore($mysql_file);//執行MySQL恢復命令
functionrestore($fname)
{
if(file_exists($fname)){
$sql_value="";
$cg=0;
$sb=0;
$sqls=file($fname);
foreach($sqlsas$sql)
{
$sql_value.=$sql;
}
$a=explode("; ",$sql_value);//根據"; "條件對資料庫中分條執行
$total=count($a)-1;
mysql_query("setnames'utf8'");
for($i=0;$i<$total;$i++)
{
mysql_query("setnames'utf8'");
//執行命令
if(mysql_query($a[$i]))
{
$cg+=1;
}
else
{
$sb+=1;
$sb_command[$sb]=$a[$i];
}
}
echo"操作完畢,共處理$total條命令,成功$cg條,失敗$sb條";
//顯示錯誤信息
if($sb>0)
{
echo"<hr><br><br>失敗命令如下:<br>";
for($ii=1;$ii<=$sb;$ii++)
{
echo"<p><b>第".$ii."條命令(內容如下):</b><br>".$sb_command[$ii]."</p><br>";
}
}//-----------------------------------------------------------
}else{
echo"MySQL備份文件不存在,請檢查文件路徑是否正確!";
}
}
?>

⑧ 用php程序寫.sql文件還原恢復

你的這個備份文件應該是mysql的備份文件吧?

如果是的話,你既然可以備份了(你是調用mysqlmp備份的吧),那你也可以同理用mysql自帶的命令進行恢復啊,下面列出2種單是在mysql環境下的恢復方法,你參考下:

1、你在程序中仿照cmd下dos的窗口那裡調用命令:
mysql -uroot -p密碼 db_name < 路徑\xx.sql

2、你在程序中連接上mysql,然後發送SQL語句:

先轉到你要恢復的庫下:
use db_name

然後在該庫環境下恢復:
source 路徑\xx.sql

"不是調用mysqlmp呀
而是利用mysql的函數 把表和欄位(包括類型等)很多信息 還有表內數據 一條一條的拼成的.sql文件。"
--------------------------------------
可想你自己多費事。
沒必要這樣處理嘛,就算現在很多提供圖形界面進行備份的軟體,也不像你這樣寫的,基本都是調用資料庫系統本身提供的工具或命令直接完成的。再說,mysqlmp功能就比較多了,通過設置不同參數可以靈活的做到:備份某庫、某表,或只要定義,不要數據,或只要數據,不要表定義等等。
這樣備份的話,恢復也很簡單,可以完全調用資料庫系統本身提供的工具命令來完成恢復資料庫。

⑨ PHP+MYSQL的資料庫如何備份和還原

有很多軟體可以使用,比如phpmyadmin,sqlyog等等
下載一個phpmyadmin並且配置好(網上有如何配置),其中就有備份還原資料庫的圖標,很簡單
補充:----------------------
對啊,點導出,然後執行就可以了啊

閱讀全文

與php資料庫備份與恢復相關的資料

熱點內容
美食博主用什麼app拍視頻 瀏覽:812
ipone手機如何加密微信 瀏覽:354
自來水加密閥閥帽 瀏覽:431
華為交換機dhcp配置命令 瀏覽:315
androidbitmap縮小 瀏覽:271
單片機串口控制燈 瀏覽:84
大訊雲伺服器安裝視頻 瀏覽:784
華為演算法領先世界 瀏覽:654
linux路由重啟 瀏覽:566
php的模板編程 瀏覽:321
編譯器原理與實現書 瀏覽:709
dos選擇命令 瀏覽:18
apm固件編譯到單片機 瀏覽:121
聯通深藍卡都包含什麼app 瀏覽:265
如何判斷網路伺服器正常 瀏覽:652
路由器搭橋遠端伺服器地址是什麼 瀏覽:518
編譯動態庫時會連接依賴庫嗎 瀏覽:710
淘寶手機加密是隨機的嗎 瀏覽:675
解壓包子怎麼裝飾 瀏覽:588
四個數湊24演算法 瀏覽:679