#!/bin/sh
filename="" (按自己的想法来就可以)
mysqldump -u xxx -p xxx databasename tablename>$filename

解决方案 »

  1.   

    好久以前写过一个php的.
    可惜没怎么用过,一直是用crontab 调shell脚本来备份。<?php 
    /* 类名:MysqlBackUp 
    方法说明:
    setHost($value); 设置数据库主机名;
    setUser($value) 设置数据库用户名;
    setPassword($value) 设置数据库密码;
    setDatabase($value) 设置数据库名称;
    setTables($array)   设置要备份的数据表组成的(数组);
    setFilename($value) 设置保存的文件名
    Init()              初始化;
    list_tables()       返回数据库中所有表的数组.
    backup()            备份数据并保存.
    restore($sql)          导入数据(从SQL语句).
    restoreFromFile($sql)  导入数据(从文件).*/class MysqlBackUp
    {
    var $Host;
    var $User;
    var $Password;
    var $Database;
    var $Tables;
    var $Conn;
    var $Filename;
    var $error;
    var $strings;
    var $isCreate=false;
    function setHost($value)
    {
    $this->Host=$value;
    }
    function setUser($value)
    {
    $this->User=$value;
    }
    function setPassword($value)
    {
    $this->Password=$value;
    }
    function setDatabase($value)
    {
    $this->Database=$value;
    }
    function setTables($array)
    {
    $this->Tables=$array;
    }
    function setFilename($value)
    {
    $this->Filename=$value;
    }
    function setIsCreate($value=false)
    {
    $this->isCreate=$value;
    }
    function MysqlBackUp()
    {
    //blank;
    }
    function Init()
    {
    $this->connect();
    $this->select_db();
    //mysql_query("set NAMES gb2312");
    }
    function connect()
    {
    $this->Conn=@mysql_connect($this->Host,$this->User,$this->Password);
    if(!$this->Conn)
    {
    $this->error='连接失败';
    return false;
    }
    else
    {
    return true;
    }
    }
    function select_db()
    {
    if(@mysql_select_db($this->Database,$this->Conn))
    return true;
    else
    {
    $this->error='选择数据库失败';
    return false;
    }
    }
    function list_tables()
    {
    $result=@mysql_list_tables($this->Database);
    $i=0;
    while($rows=@mysql_fetch_row($result))
    {
    $row[$i]=$rows[0];
    $i++;
    }
    return $row;
    }
    function backup_create_table($table)
    {
    $result=@mysql_query("show create table ".$table);
        $row = mysql_fetch_assoc($result);
    $dump='';
                $dump .= "\n\n--\n";
                $dump .= "-- Table structure for table '$table'\n";
                $dump .= "--\n\n";
                $dump .= str_replace( "`", "", $row['Create Table'] );
                $dump .= ";\n\n";            $dump .= "\n\n--\n";
                $dump .= "-- Dumping data for table '$table'\n";
                $dump .= "--\n\n";
    return $dump;
    }
    function backup_data($table)
    {
    $sql="select * from ".$table;
    $result=mysql_query($sql);
     while ($row = @mysql_fetch_row($result))
            {
                foreach ($row as $id => $value)
                {
                    $value = str_replace('"','\\"',$value);
                    $row[$id] = '"'.$value.'"';
                }
    $dump .= 'INSERT INTO ' . $table . ' VALUES (' . implode(',',$row) . ");\n";
    }
    return $dump;
    }
    function backup()
    {
    if(!$this->Tables)
    $this->Tables=$this->list_tables();
    $dump='';
    for($i=0;$i<sizeof($this->Tables);$i++)
    {
    if($this->isCreate)
    $dump.=$this->backup_create_table($this->Tables[$i]);
    $dump.=$this->backup_data($this->Tables[$i]);
    }
    $this->strings=$dump;
    $this->save();
    return $dump;
    }
    function save()
    {
    $fp=@fopen($this->Filename,'w+');
    fwrite($fp,$this->strings);
    @fclose($fp);

    }
    function restore($sql)
    {
    $result = @mysql_query($sql);
    if(!$result)
    {
    $this->error = "数据导入失败!";
    return false;
    }
    else
    {
    return true;
    }
    }
    function restoreFromFile($file)
    {
    if(file_exists($file))
    {
    $fp=@fopen($file,'r');

    $filesize = filesize($file);
    $fp = fopen($file,"r");
    $buffer  =  '';
    $inside_quote  =  0;
    $quote_inside =  '';
    $started_query =  0;
    $data_buffer  =  '';
    $last_char  =  "\n";
    while(!feof($fp) || strlen($buffer))
    {
    do
    {
    if (!strlen($buffer))
    {
    $buffer .= fread ($fp,1024);
    }
    $current_char = $buffer[0];
    $buffer = substr($buffer, 1);
    if ($started_query)
    {
    $data_buffer .= $current_char;
    }
    elseif (preg_match("/[A-Za-z]/i",$current_char) && $last_char == "\n")
    {
    $started_query = 1;
    $data_buffer = $current_char;
    }
    else
    {
    $last_char = $current_char;
    }
    }
    while (!$started_query && (!feof($fp) || strlen($buffer)));
    if ($inside_quote && $current_char == $quote_inside && $last_char != '\\')
    {
    $inside_quote = 0;
    }
    elseif ($current_char == '\\' && $last_char == '\\')
    {
    $current_char = '';
    }
    elseif (!$inside_quote && ($current_char == '"' || $current_char == '`' || $current_char == '\''))
    {
    $inside_quote = 1;
    $quote_inside = $current_char;
    }
    elseif (!$inside_quote && $current_char == ';')
    {
    if(preg_match('/[cC]{1}[rR]{1}[eE]{1}[aA]{1}[tT]{1}[eE]{1}[ ]{1}[tT]{1}[aA]{1}[bB]{1}[lL]{1}[eE]{1}[ ]{1}[` a-z A-Z 0-9 _ \-]*(\()/',$data_buffer,$row))
    {
    $table=preg_replace('/[cC]{1}[rR]{1}[eE]{1}[aA]{1}[tT]{1}[eE]{1}[ ]{1}[tT]{1}[aA]{1}[bB]{1}[lL]{1}[eE]{1}[ ]{1}/','',$row[0]);
    $table=str_replace('(','',$table);
    $table=trim($table);
    mysql_query("drop table ".$table);
    } mysql_query($data_buffer);
    $this->error=mysql_error();
    $data_buffer = '';
    $last_char = "\n";
    $started_query = 0;
    }
    $last_char = $current_char;
    }
    }
    return true;
    }}?>
      

  2.   

    给你看一下我很久以前用的这个备份和还原的(没有整理成类,呵呵,但是很好用)!一起需要三个文件:mydb.php(数据库连接类)  backup.php(备份文件)  restore.php(还原文件),由于文件内容太长,我给你一个下载地址:
    http://www.519mir.com/db.rar然后你需要在你的同以及目录下建一个backup文件夹,运行一下backup.php(备份),restore.php(还原)