PHPMyAdmin就有备份功能啊你可以复制库、表为另一个名称的库、表(包含数据)

解决方案 »

  1.   

    我的做法是将MYSQL导出生成SQL语句,恢复的时候先删除表数据,然后再运行这些SQL语句。
      

  2.   

    可以用phpmyadmin导出SQL语句,可以只导出数据,类似insert into table....; 也可以只导出表结构,类似Create Table....; 也可以既导出结构又导出数据.
      

  3.   

    虚拟主机的mysql一般不对外面的host开方,而且不能对文件操作,所以只能用phpmyadmin了
    不过也可以这样,先把所有的数据导入文件/tmp/1.tmp
    然后,再作一个php的程序把/1.tmp copy到当前网页下
    所需的是unix/linux环境
      

  4.   

    仿照phpMyAdmin写的一个简单MYSQL备份、还原程序,已测试通过(不适合复杂结构),仅供参考!
    config.php文件:
    <?php
    $dbhost="localhost";
    $dbuser="root";
    $dbpass="";
    $dbname="test";
    $filename="backup_".$dbname."_2002_10_16.sql";
    $conn = mysql_pconnect($dbhost,$dbuser,$dbpass);
    @mysql_select_db($dbname,$conn) or die(mysql_error());
    set_time_limit(0);
    ?>backup.php文件:
    <?php
    include("config.php");
    $tables = mysql_list_tables($dbname);
    $num_tables = @mysql_numrows($tables);
    //header("Content-type: text/plain");
    header("Content-Type: application/octetstream");
    if(preg_match("/MSIE 5.5/", $HTTP_USER_AGENT))
    {
       header("Content-Disposition: filename=$filename");
    }
    else
    {
       header("Content-Disposition: attachment;filename=$filename");
    }echo "#  \n";
    echo "# Database backup file \n";
    echo "# copyright @ phpteam 20002-2003 \n";
    echo "# \n";
    echo "# Host    : " . $dbhost ."\n";
    echo "# Database: " . $dbname ."\n";
    echo "# Date    : " . date("d-M-Y",time()) . "\n";
    echo "#  \n\n\n";$i=0;
    while ($i<$num_tables)
    {
       $table = mysql_tablename($tables,$i);
       echo "#  \n";
       echo "# Table structure for table '$table' \n";
       echo "#  \n\n";
       // table structure
       $struc = "DROP TABLE IF EXISTS ".$table.";\n";
       $struc .= "CREATE TABLE $table (\n";
       $query = "SHOW FIELDS FROM $table";
       $result = mysql_query($query);
       while ($row=mysql_fetch_array($result))
       {
          $struc .= "  $row[Field] $row[Type]";
          if(!empty($row["Default"]))
          {
             $struc .= " DEFAULT '$row[Default]'";
          }
          if($row["Null"] != "YES")
          {
             $struc .= " NOT NULL";
          }
          if($row["Extra"] != "")
          {
             $struc .= " $row[Extra]";
          }
          $struc .= ",\n";
       }
       $query = "SHOW KEYS FROM $table";
       $result = mysql_query($query);
       $pkey_exist = mysql_num_rows($result);   if($pkey_exist!=0)
       {
          $pkey = mysql_result($result,0,'column_name');
          $struc .= "  PRIMARY KEY ($pkey)\n";
       }
       else
       {
          // replace ,\n
          $struc = substr($struc,0, strlen($struc)-2);
          $struc .= "\n";
       }
       echo $struc;
       echo ");\n\n";   // data
       echo "#  \n";
       echo "# Dumping data for table '$table' \n";
       echo "#  \n\n";
       $query = "select * from $table";
       $result = mysql_query($query);
       $j = 0;
       while($row=mysql_fetch_row($result))
       {
          $data .= "INSERT INTO $table VALUES(";
          for($k=0; $k<mysql_num_fields($result);$k++)
          {
             if (!isset($row[$k]))
             {
                $data .= " NULL,";
             }
             elseif($row[$k]!="")
             {
                $data .= " '".addslashes($row[$k])."',";
             }
             else
             {
                $data .= " '',";
             }
          }
          // replace ,\n
          $data = substr($data,0, strlen($data)-1);
          $data .= ");\n";
          $j++;
       }
       echo $data."\n";
       $data = "";
       $i++;
    }
    ?>import.php文件:
    <?php
    include("config.php");
    $fp = fopen($filename, "r");
    while($buffer = fgets($fp, 10000))
    {
       $buffer = trim($buffer);
       if(!empty($buffer) && substr($buffer,0,1) != "#")
       {
          if(substr($buffer,-2,2)==");")
          {
             $query .= $buffer;
             $result = mysql_query($query);
             $query = "";
          }
          else
          {
             $query .= $buffer;
          }
       }
    }
    fclose($fp);
    echo $dbname." has restored!";
    ?>
      

  5.   

    我是直接用命令
    .导出
    exec($path->mysqldir."/mysqldump ".$dbuser." ".$dbpass." ".$CONFIG->dbname." > ".$path->backupdbdir."/".$str.$SAS_SESSION[userlogin][uloginid].".sql");
    .导入
    $create_db=$path->mysqldir."/mysqladmin ".$dbuser." ".$dbpass." create ".$CONFIG->dbname;
    exec($create_db);
                $sql=$path->mysqldir."/mysql ".$dbuser." ".$dbpass." ".$CONFIG->dbname." < ".$path->backupdbdir."/".$form[isselect];
    exec($sql);