@echo off
echo.
echo database backup
echo *****************************
echo.
echo Today is %date%
echo Time is %time%
echo.
echo *****************************
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
cd C:\Program Files\MySQL\MySQL Server 5.0\bin
mysqldump -uroot -p123 -B salo > c:\1.sql
echo.
echo MySQL database backup successful,Please check it
echo.
echo.
pauseRestore:
@echo off
echo.
echo Database restore
echo *****************************
echo.
echo Today is %date%
echo Time is %time%
echo.
echo *****************************
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
cd C:\Program Files\MySQL\MySQL Server 5.0\bin
mysql -uroot -p123 salo < c:\1.sql
echo.
echo MySQL database restore successful,please check it
echo.
echo.
pause
为什么当本地的数据库没有salo时,就会发生还原错误。

解决方案 »

  1.   

    备份时加入:
    mysqldump -uroot -p123 --add-drop-database -B salo > c:\1.sql你备份的SQL中没有建立数据库的语句
    CREATE DATABASE 
      

  2.   

    检查一下你的SQL文件中是否有
    CREATE DATABASE /*!32312 IF NOT EXISTS*/ `数据库名称` /*!40100 这类的内容
      

  3.   

    OR
    直接
    mysql -uroot -p123 < c:\1.sql
      

  4.   

    解决方案2个:
    1,在1.sql的开头加上这句:
    create database if not exists salo;
    use salo;2,在导入库之前,执行如下sql
    create database if not exists salo;
      

  5.   

    如果你的SQL文件中没有CREATE DATABASE,则加入,
    如有,直接mysql -uroot -p123 < c:\1.sql就OK了
      

  6.   

    好像不可以的呀,
    Database restore
    *****************************Today is 2011/02/24
    Time is 18:01:05.89*****************************
    ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
    nual that corresponds to your MySQL server version for the right syntax to use n
    ear '锘?
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */' at line 1MySQL database restore successful,please check it...
    Press any key to continue . . .
      

  7.   


    试试我的办法吧!解决方案2个:
    1,在1.sql的开头加上这句:
    create database if not exists salo;
    use salo;2,在导入库之前,执行如下sql
    create database if not exists salo;
      

  8.   

    Restore:
    [code=BatchFile]@echo off
    echo.
    echo Database restore
    echo *****************************
    echo.
    echo Today is %date%
    echo Time is %time%
    echo.
    echo *****************************
    set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
    cd C:\Program Files\MySQL\MySQL Server 5.0\bin
    mysql -uroot -p123 salo -e "create database if not exists salo;"
    mysql -uroot -p123 salo < c:\1.sql
    echo.
    echo MySQL database restore successful,please check it
    echo.
    echo.
    pause[/code]
      

  9.   

    狼头:
    我备份的SQL里面就有create database if not exists salo;use salo
    不过表头好像还有很多看不懂的
    -- MySQL Administrator dump 1.4
    --
    -- ------------------------------------------------------
    -- Server version 5.0.51b-community-nt
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;--
    -- Create schema masterdata
    --CREATE DATABASE IF NOT EXISTS salo;
    USE salo;
      

  10.   

    那应该没有问题了。/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    这些是一些辅助性的语句。  上面这句是
    SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT
      

  11.   

    /*!如果开定界(/*)符后面紧跟了一个感叹号(!),那么MySQL将尝试解析并执行评论定界符内部的代码。如果感叹号(!)后面紧跟了一个MySQL版本号的话,只有当MySQL的版本等于或者高于给定的版本时,才会执行里面的代码
      

  12.   

    那应该没有问题了,直接用mysql -uroot -p123 < c:\1.sql
    提示什么?
      

  13.   

    回WWWWA:就是出现我在7楼的错误。
      

  14.   

    回WWWWA:就是出现我在7楼的错误。
      

  15.   

    备份、导入的MYSQL版本是否一致,SQL文件内容是什么,两个MYSQL字符集是否一致
      

  16.   

    我导入的备份SQL文件是用MYSQL ADMINISTATOR工具备份的,能在MYSQL ADMINISTATOR中还原。
    但是用上面还原命令就出现错误。
      

  17.   

    用MYSQLDUMP备份后,再恢复试试,估计问题出在这里
      

  18.   

    用MYSQLDUMP备份后,用上面的命令是可以恢复的。
    但是我用MYSQL ADMINISTATOR工具备份的,用上面的命令是可以恢复的。
    然后用MYSQLDUMP备份后,在MYSQL ADMINISTATOR还原也出现这个错误:
    The selected file was generated by mysqldump and cant be restored by this application.
    这个该怎么解决?
      

  19.   

    但是我用MYSQL ADMINISTATOR工具备份的,用上面的命令也是不可以恢复的,出现7楼的错误。
      

  20.   

    说明
    1、代码没有问题;
    2、MYSQLDUMP与MYSQL ADMINISTATOR备份、还原有区别;
    3、建议用MYSQL自己的MYSQLDUMP、MYSQL备份、还原。
      

  21.   

    嗯,估计是这个问题。
    还有1问题:
    我备份的时候数据库名称是:salo 而且在SQL文件里面已经有create database salo le 
    但是还原的时候我想把它改成:SA
    该怎么弄?
      

  22.   

    只有修改SQL文件了
    create database salo->create database sA
      

  23.   

    文件太大了,有时候打不开,挺郁闷的。
    我想在备份的时候不加上--add-drop-database
    然后在还原的时候加上:
    mysql -uroot -p123 sa -e "create database if not exists sa;"
      

  24.   

    关键在你的SQL文件中有
    create database if not exists ....
    use ....用ultraedit之类的软件打开吧,速度快一些