国外设计欣赏网站 - DOOOOR.com

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

[PHP] 利用php还原mysql大文件的备份

[复制链接]
发表于 4-13-2012 23:00 | 显示全部楼层 |阅读模式
首先在原来的phpmyadmin中分两步导出mysql数据库 请分两个步骤导出
3 t0 C8 [# w' B4 v7 b3 N
- x# J9 Q! l/ S0 p4 A( P( J第一步:导出数据库结构。数据库结构文件一般很小,几乎不可能超过2M,所以可以直接在另外一个phpmyadmin的上面直接恢复;
; U  ^6 D6 u- h2 i" S0 ]! i3 m9 a
" u' |# @) k6 i/ \. i8 w! b第二步:导出数据内容。这个文件若是太大,则可以采用php写的程序进行恢复。& |1 ~0 A1 G, b2 p

& i" D4 w4 B1 [+ S2 @<?php
' m5 n$ ^/ S# `% d4 g; u+ n& mdefine('DB_NAME', '');
9 x' P! R, \. d% {2 U6 h* gdefine('DB_USER', '');
  N: l: ~, T% G  r8 a3 k% D! ndefine('DB_PASSWORD', '');
; r6 a3 L8 g2 m: odefine('DB_HOST', '');* X3 }  R8 \, m  D
/*定义数据库连接*/1 Y7 U+ v' J: |5 D; }' {* k
$mysql = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("mysql connect fail, wrong password");
* a" j) d" F( e4 L2 ymysql_select_db(DB_NAME)or die("select DB fail");
! L( U4 }9 j2 e. |6 f7 kmysql_query("set names utf8");6 h' h+ p# I2 l( n) ^
$fp = fopen("db.sql","r") or die('can not open file');! @& _9 r# B6 X* d7 H  c
while( $s = fgets( $fp,100000 ) ){
  C  k1 B2 s1 w" b$m .= $s;  u5 n. G( u6 A7 ?  L
}
( z! ^7 O5 `! A$ T( {- z% ~: h$sql_content = explode(";\n",$m);8 s' w7 m* j- f
$i = 0;
7 Q& @+ @% u9 R$max = count($sql_content) ;5 A1 z. e6 o5 x" q$ b' G9 X
while( $i < $max ){
5 m# H6 s$ k) @mysql_query( $sql_content [$i] );8 M" |9 q  N8 |: T
if( mysql_error()) echo mysql_error()."";& k% h. L5 ]5 Z  K/ V
else{9 \: G  T) V8 o7 H! d& x
$n ++;
* f$ y/ z5 n3 Q5 l/ t" N( F- F}
7 u( |7 W$ T, Q$i ++;
& H) x% R& S0 o8 k}1 s2 ?) a  @7 O0 C3 ]
echo "mysql queries:".$n;
- K6 E6 G3 k' s: l$ V+ kfclose($fp);
2 ?% A% D& J5 `& [?>. }& _; W* P1 G% G/ G% S9 e# d
$ z; w4 T% p$ j7 {. T$ l
导入方法(请保证已经将数据库结构导入了新的数据库):2 L* O2 {) V: C  C8 e5 j
1 }8 l. ?1 {5 E1 b, P+ Z" Y) k
1.将以上php代码存为import.php,放置在根目录中;( ~4 F" x, [; d& o
3 y, ?9 G, v& g% E
2.用记事本打开import.php,修改前面4行数据库连接;7 d4 u% b; ?. k
6 {) R3 l% S5 L- A( v& J2 |) R
3.解压缩刚才已经备份下来的数据库内容文件,重命名为 db.sql,上传到网站根目录;  D! r* T2 Q9 z1 @/ D1 e
( ^! Q' }% t- @
4.打开网站 http://您的域名/import.php ,若设置正确的话,数据库将在数秒之内导入成功,即使10M的数据库也不会超时;
1 m& {2 _/ j5 t- D# s; M! N* c) b" j' o2 ^
/ n1 \$ d$ ?2 y' Y5 S3 {& @
本例仅供参考,请谨慎!
& s+ m/ n8 V7 L+ d# g, S9 j: _5 U# ^" r; C! X3 G- @
8 P( Q+ O/ U( w
本帖选自:Drupal --> chinaphp.org ,谢谢!
' k0 \1 z- P" e8 q+ L: |) c; a% X6 ?

* b8 _- N- H) C3 e: x$ ]8 ]$ `
. @1 d8 O$ _& N! e* C1 e' b0 H( g
: Q& q$ |" Y! R% m, |  n  G4 d
' ~  x* o. p+ N. [& ^6 }2 X

|2011-2026-版权声明|平台(网站)公约|DOOOOR 设计网 ( 吉ICP备2022003869号 )

GMT+8, 2-16-2025 01:25 , Processed in 0.282435 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表