當前位置:首頁 » 編程語言 » php備份資料庫

php備份資料庫

發布時間: 2023-05-11 23:48:48

㈠ 如何用php來實現Mysql備份

備份資料庫並下載到本地【db_backup.php】

<?php
//設置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
//所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
//獲取當前頁面文件路徑,SQL文件就導出到此文件夾
$tmpFile=(dirname(__FILE__))."\".$filename;
//用MySQLDump命令導出資料庫
exec("mysqlmp-u$cfg_dbuser-p$cfg_dbpwd--default-character-set=utf8$cfg_dbname>".$tmpFile);
$file=fopen($tmpFile,"r");//打開文件
echofread($file,filesize($tmpFile));
fclose($file);
exit;
?>

㈡ 如何使用PHP自動備份資料庫

使用mysqlmp函數

mysqlmp -u username -p dbname table1 table2 ... > BackupName.sql

  • dbname參數表示資料庫的名稱

  • table1和table2參數表示需要備份的表的名稱,為空則整個資料庫備份;

  • BackupName.sql參數表設計備份文件的名稱,文件名前面可以加上一個絕對路徑。通常將資料庫被分成一個後綴名為sql的文件。

  • 備份資料庫的主要過程:

  • 切換到對應的資料庫;

  • 使用show create table tableName,獲得表結構,寫到文件中;

  • 然後查詢所有的表數據,循環生成相對應sql語句,寫到文件中;

  • 試運行生成的sql文件。

㈢ php mysql如何備份數據

我一般用二種方法:
1.SQL文件數據備份;
下載一個Navicat Premium,使用這個軟體,正確連接並訪問資料庫,
點中你想要備份的資料庫,按右鍵使用轉存SQL文件,就會出現你要備份的提示框,保存即可;
若要導進則用運行SQL文件,非常方便的導入單個數侍臘據庫的,但這種只適合於小數據量的數據鏈談孝庫(50萬條以下);
2.底層備份,但這種備份要求安裝是同一版本的mysql才適合,否則會出現未知錯誤;
直接找到mysql安裝目錄,找到data文件夾全部拷唄到你想備份的地方即可,還原就拷回來即可。適合大數據量的備份方法!

3.至於樓主硬要用PHP備份數據的話棚稿,你可以參考phpadmin和dedecms程序備份數據的方法,但這種執行效率很低的!

㈣ php,mysql資料庫備份和還原的最理想方式,類似phpadmin的代碼

一、備份資料庫並下載到本地【db_backup.php】
復制代碼 代碼如下:
<?php
// 設置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
// 所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
// 獲取當前頁面文件路徑,SQL文件就導出到此文件夾內
$tmpFile = (dirname(__FILE__))."\\".$filename;
// 用MySQLDump命令導出資料庫
exec("mysqlmp -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname > ".$tmpFile);
$file = fopen($tmpFile, "r"); // 打開文件
echo fread($file,filesize($tmpFile));
fclose($file);
exit;
?>
二、還原資料庫【db_restore.php】
復制代碼 代碼如下:
<form id="form1" name="form1" method="post" action="">
【資料庫SQL文件】:<input id="sqlFile" name="sqlFile" type="file" />
<input id="submit" name="submit" type="submit" value="還原" />
</form>
<?php
// 我的資料庫信息都存放到config.php文件中,所以載入此文件,如果你的不是存放到該文件中,注釋此行即可;
require_once((dirname(__FILE__).'/../../include/config.php'));
if ( isset ( $_POST['sqlFile'] ) )
{
$file_name = $_POST['sqlFile']; //要導入的SQL文件名
$dbhost = $cfg_dbhost; //資料庫主機名
$dbuser = $cfg_dbuser; //資料庫用戶名
$dbpass = $cfg_dbpwd; //資料庫密碼
$dbname = $cfg_dbname; //資料庫名
set_time_limit(0); //設置超時時間為0,表示一直執行。當php在safe mode模式下無效,此時可能會導致導入超時,此時需要分段導入
$fp = @fopen($file_name, "r") or die("不能打開SQL文件 $file_name");//打開文件
mysql_connect($dbhost, $dbuser, $dbpass) or die("不能連接資料庫 $dbhost");//連接資料庫
mysql_select_db($dbname) or die ("不能打開資料庫 $dbname");//打開資料庫
echo "<p>正在清空資料庫,請稍等....<br>";
$result = mysql_query("SHOW tables");
while ($currow=mysql_fetch_array($result))
{
mysql_query("drop TABLE IF EXISTS $currow[0]");
echo "清空數據表【".$currow[0]."】成功!<br>";
}
echo "<br>恭喜你清理MYSQL成功<br>";
echo "正在執行導入資料庫操作<br>";
// 導入資料庫的MySQL命令
exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname < ".$file_name);
echo "<br>導入完成!";
mysql_close();
}
?>

㈤ 知道了php資料庫賬號密碼怎麼備份

  • z-blog php資料庫帳號密碼保存在zb_users/c_option.php

php一般使用的mysql的資料庫 如果沒有密碼的話 比較麻煩

要破解mysql的root密碼 這是關鍵

參考:

如果是root密碼:


方法一:

MySQL提供跳過訪問控制的命令行參數,通過在命令行以此命令啟動MySQL伺服器:

safe_mysqld --skip-grant-tables&

即可跳過MySQL的訪問控制,任何人都可以在控制台以管理員的身份進入MySQL資料庫。

需要注意的是在修改完密碼以後要把MySQL伺服器停掉重新啟動才會生效


方法二:

可以進行如下的步驟重新設置MySQL的root密碼:

1.首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連接MySQL資料庫。

因為在重新設置MySQL的root密碼的期間,MySQL資料庫完全出於沒有密碼保護的

狀態下,其他的用戶也可以任意地登錄和修改MySQL的信息。可以採用將MySQL對

外的埠封閉,並且停止Apache以及所有的用戶進程的方法實現伺服器的准安全

狀態。最安全的狀態是到伺服器的Console上面操作,並且拔掉網線。

2.修改MySQL的登錄設置:

# vi /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables

例如:

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

skip-name-resolve

skip-grant-tables

保存並且退出vi。

3.重新啟動mysqld

# /etc/init.d/mysqld restart

Stopping MySQL: [ OK ]

Starting MySQL: [ OK ]

4.登錄並修改MySQL的root密碼

# /usr/bin/mysql

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 3 to server version: 3.23.56

Type 『help;』 or 『h』 for help. Type 『c』 to clear the buffer.

mysql> USE mysql ;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> UPDATE user SET Password = password ( 『new-password』 ) WHERE User = 『root』 ;

Query OK, 0 rows affected (0.00 sec)

Rows matched: 2 Changed: 0 Warnings: 0

mysql> flush privileges ;

Query OK, 0 rows affected (0.01 sec)

mysql> quit

Bye

5.將MySQL的登錄設置修改回來

# vi /etc/my.cnf

將剛才在[mysqld]的段中加上的skip-grant-tables刪除

保存並且退出vi。

6.重新啟動mysqld

# /etc/init.d/mysqld restart

Stopping MySQL: [ OK ]

Starting MySQL: [ OK ]

windows

1.以系統管理員身份登陸系統。

2.打開cmd—–net start 查看mysql是否啟動。啟動的話就停止net stop mysql.

3.我的mysql安裝在d:usrlocalmysql4in下。

4.跳過許可權檢查啟動mysql.

d:usrlocalmysql4inmysqld-nt –skip-grant-tables

5.重新打開cmd。進到d:usrlocalmysql4in下:

d:usrlocalmysql4inmysqladmin -uroot flush-privileges password 「newpassword」

d:usrlocalmysql4inmysqladmin -u root -p shutdown 這句提示你重新輸密碼。

6.在cmd里net start mysql

7.搞定了。

2,MySQL4.1以上版本一種密碼錯誤問題的解決方法

1 # SET PASSWORD FOR 』some_user』@』some_host』 = OLD_PASSWORD(『newpwd』);

2 # FLUSH PRIVILEGES;

3,Mysql資料庫修復

myisamchk -r -q d:mysqldatalatin1*

r代表修復

q代錶快速

d:mysqldatalatin1*資料庫裡面 *代表裡面的所有的文件


方法三:

如果你忘記了你的MYSQL的root口令的話,你可以通過下面的過程恢復。

1. 向mysqld server 發送kill命令關掉mysqld server(不是 kill -9),存放進程ID的文件通常在MYSQL的資料庫所在的目錄中。

kill `cat /mysql-data-directory/hostname.pid`

你必須是UNIX的root用戶或者是你所運行的SERVER上的同等用戶,才能執行這個操作。

2. 使用`--skip-grant-tables' 參數來啟動 mysqld。

3. 使用`mysql -h hostname mysql'命令登錄到mysqld server ,用grant命令改變口令。你也可以這樣做:`mysqladmin -h hostname -u user password 'new password''。

(其實也可以用use mysql; update user set password =password('yourpass') where user='root' 來做到。)

4. 載入許可權表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。(當然,在這里,你也可以重啟mysqld。)


方法四:(一定要先備份)

1,重新在另一台電腦上安裝相同版本的MySQL

2,刪除忘記密碼的電腦中MySQL安裝目錄中datamysql的全部內容(要先停止MySQL服務)

3,Copy新裝的電腦上MySQL安裝目錄中datamysql的全部內容 to 剛剛刪除的目錄中

4,啟動MySQL服務


這樣就只有一個root用戶了,密碼為空……

㈥ 請問如何用php寫一個類,備份所有的資料庫呢

主要是個mysql mp操作,將資料庫的數據完整導入到txt或者其他文件中就可以的,和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備份文件不存在,請檢查文件路徑是否正確!";
}
}
?>

㈧ phpcmsv9資料庫備份在哪

phpcms可以使用多備份進行資料庫備份
根據phpcms的運行環境,可以選擇web模式備份或者客戶端備份
虛擬主機環境可以選擇web模式備份。登陸多備份官網後進入多備份控制面板,如果是首次登陸會有備份環境選項,選擇保護伺服器

選擇web模式,然後選擇資料庫備份。如果非首次登陸直接選擇添加,然後選擇資料庫備份

選擇好以後添加資料庫參數,選擇備份頻率,創建任務即可。
如果是伺服器環境,首先進入多備份控制面板,首次登陸會有備份環境,然後選擇保護伺服器,下載對應的客戶端。如果非首次登陸,直接下載左下角的客戶端

下載好以後解壓,打開dbfen.exe,然後登陸多備份賬號,選擇資料庫備份,然後填入資料庫參數,選擇備份頻率,即可開始備份

㈨ 用PHP怎麼將MYSQL中的指定資料庫備份下來

下載phpmyadmin ,他是用php語言開發的管理mysql的工具,有導出、導入等功能,解壓復制一份到你的任意一個網站目錄下,通過目錄訪問就可以了,

當然你也可以使用帝國的資料庫備份工具,也很方便的,特別是對於資料庫備份這個功能,比phpmyadmin還強大 予學PHP培訓

㈩ php 代碼備份資料庫

<?php
/*
**************functiondb_bak()********************
*功能:備份指定的資料庫中的指定表
*輸入(按傳入參數解釋):$db_name要備份的資料庫,$tb_array要備份的表,數組形式的,如果不是數組,將備份整個庫。
$dir輸出備份文件的目錄,$filename備份文件名,$block_num指定分塊大小(指一條insert語句包含幾天數據)
*輸出:備份的數據表的sql語句文件,可用於還原
*/
functiondb_bak($mylink,$dbname,$tab_array="",$dir,$filename,$block_num=20){
mysql_select_db($dbname,$mylink)ordb_error(mysql_error());
is_array($tab_array)or$tab_array=db_showtb($mylink,$dbname,true);//如果$tab_array不是數組,則取得整個庫的表
if($dir){
if(!file_exists($dir)){
$flag=mkdir($dir);
if(!$flag)
return2;
}
}
//檢查數據表是否存在
foreach($tab_arrayas$tab)
笑凳db_e_tab($mylink,$dbname,$tab)ordb_error($tab."is頃扮notexist!");
$fp=fopen($dir.$filename,"w");
foreach($tab_arrayas$tab){
fputs($fp,"DROPTABLEIFEXISTS".$tab."; ");
$tabdef_array=mysql_fetch_array(mysql_query("SHOWCREATETABLE".$tab,$mylink));
fputs($fp,str_replace(" ","",$tabdef_array["CreateTable"])."; ");
fputs($fp,"LOCKTABLES".$tab."WRITE; ");
$getvalue_result=mysql_query("select*from".$tab,$mylink);
if(mysql_num_rows($getvalue_result)){
$i=1;
雀升灶$p="";
$start_flag=true;
while($getvalue_array=mysql_fetch_row($getvalue_result)){
$values=join("','",array_map('db_data_check',$getvalue_array));
$start_flag&&fputs($fp,"insertinto".$tab."values");
if($i>$block_num){
fputs($fp,",('".$values."'); ");
$start_flag=true;
$i=0;
}else{
fputs($fp,$p."('".$values."')");
$start_flag=false;
$i++;
}
$p=$start_flag?"":",";
}
$start_flagorfputs($fp,"; ");
}
fputs($fp,"UNLOCKTABLES; ");
}
fclose($fp);
}
/*
**************functiondb_in()********************
*功能:還原備份函數db_bak生成的資料庫文件
*輸入(按傳入參數解釋):$db_name要備份的資料庫,$filename要還原的資料庫文件
*輸出:將數據還原到資料庫
*原理:將文件分割成一個數組,然後逐條將數據導入資料庫
*警告:執行該函數會刪除原來的數據表
*/
functiondb_in($mylink,$dbname,$filename){
if(!file_exists($filename)){
return0;
}
db_e_db($mylink,$dbname)or(mysql_query("createdatabase".$dbname,$mylink)ordb_error(mysql_error()));
mysql_select_db($dbname,$mylink);
$sql_array=file($filename);
foreach($sql_arrayas$sql){
mysql_query(trim($sql),$mylink)ordb_error(mysql_error());
}
}
?>
//我自己寫的。可以參考哈

熱點內容
緩存傳文件 發布:2025-07-18 10:18:33 瀏覽:152
生信差異分析的腳本 發布:2025-07-18 10:14:50 瀏覽:596
微信打開網頁繼續訪問 發布:2025-07-18 10:09:50 瀏覽:48
蔬菜解壓游戲大全 發布:2025-07-18 10:00:12 瀏覽:71
linuxand 發布:2025-07-18 09:48:27 瀏覽:725
為什麼安卓的app下載不了 發布:2025-07-18 09:47:45 瀏覽:178
如何用伺服器搭建網路 發布:2025-07-18 09:36:05 瀏覽:451
迷你世界電腦版怎麼改密碼 發布:2025-07-18 09:26:41 瀏覽:51
php創建目錄 發布:2025-07-18 09:26:17 瀏覽:659
為什麼手機游戲分ios和安卓端 發布:2025-07-18 09:22:17 瀏覽:140