备份数据库时有什么好,快的方法么?我用front倒出的.sql文件,在另一台机器上倒入时总报错,或很慢,mysqldump -u root -p (数据库名)>cc.bbb 总是报数据库不存在的错!请给提些意见把!

解决方案 »

  1.   

    MySQL数据库的备份及恢复完全可以在B/S下实现,其他数据库也是,这是肯定的,但是怎么实现呢?首先,建两个个bat文件或者cmd文件(bat可在98及NT下执行,cmd只能在NT下执行),备份:rem 判断mysql服务是否启动,然后将查询结果输出到server.log文件里
    netstat -na | (find "0.0.0.0:3306" & find "LISTENING")>server.log
    rem 手工建立一个空的文件temp.log,为了和server.log文件相比较
    rem 将server.log与temp.log相比较,如果mysql服务已经启动,那么server.log文件中就会有信息。否则为空
    rem 如果mysql服务已经启动,那么就直接用mysqldump进行备份;如果没有启动,也就是server.log文件为空,那么就会先启动数据库,然后再备份fc server.log temp.logif ERRORLEVEL = = 0 goto backup
    @echo Trying to 启动mysql服务 …………OK
    net start mysql5:backup
    @echo mysql服务已经启动,正在备份...
    cd ..\back
    set DBBACK_HOME=%cd%
    cd ..\service\mysql\bin
    mysqldump -uroot -piamtop wcpmis > %DBBACK_HOME%\back_%date:~0,10%.sql
    if ERRORLEVEL = = 0 echo 数据库备份完成!恢复:rem 判断mysql服务是否启动,然后将查询结果输出到server.log文件里
    netstat -na | (find "0.0.0.0:3309" & find "LISTENING")>server.log
    rem 手工建立一个空的文件temp.log,为了和server.log文件相比较
    rem 将server.log与temp.log相比较,如果mysql服务已经启动,那么server.log文件中就会有信息。否则为空
    rem 如果mysql服务已经启动,那么就直接用mysqldump进行备份;如果没有启动,也就是server.log文件为空,那么就会先启动数据库,然后再备份fc server.log temp.logif ERRORLEVEL = = 0 goto backup
    @echo Trying to 启动mysql服务 …………OK 
    net start mysql:backup
    @echo mysql服务已经启动,正在恢复...
    cd ..\back
    set DBBACK_HOME=%cd%
    cd ..\service\mysql\bin
    mysql -uroot -piamtop wcpmis < %DBBACK_HOME%\back_%date:~0,10%.sql
    if ERRORLEVEL = = 0 echo 数据库恢复完成!
    用来进行备份/恢复数据库,然后在程序中:try {  
        
       String path = request.getRealPath("/"); 
       String file = path +"database\\dbBackup.cmd";     
       Process p = Runtime.getRuntime().exec("cmd /k start "+file);
             log.error(p.getInputStream());
             log.error(p.getErrorStream());
             
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
       }  即可。附:MySQL备份/恢复所有数据库
    C:\temp\TopSoft\service\mysql\bin>mysqldump -uroot -p1234 --opt --all-database
    s > test.sqlC:\temp\TopSoft\service\mysql\bin>mysql -uroot -p1234 <test.sqlC:\temp\TopSoft\service\mysql\bin>
      

  2.   

    用的是
    备份:
    C:\MySQL5.0\bin>mysqldump -u root -p databaseName<test.sql
    恢复:
    C:\MySQL5.0\bin>mysql -u root -p -f -D databaseName<test.sql这样的效率太慢了,恢复时执行半天,就是等着,也许是数据太多。无限等,执行不完。这比sql server 差远了,尤其还原都执行不了。
      

  3.   

    5.0还用命令行干吗他的GUI backup/restore, import/export做的很好的,利用JDBC可以把所有常见数据库的schema/data倒入MySQL
      

  4.   

    MySql的备份可用命令mysqldump ,使用方法很简单,mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 >路径/备份名.bak;同时也可以是用mysqldump到处数据结构(tablename.sql)和数据(tablename.txt) mysqldump -u 用户名  -p (密码)  -h 主机名 数据库名 tablename1 tablename2 > back.sql或mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 --tab 路径 --opt 数据库名.   那么还原可以mysql命令,mysql -u 用户名 -p (密码) -h 主机名 --one-database 还原数据库名 < 路径/备份名.bak,--one-database是指定要恢复的数据库.  (括号表示密码不先输入,在连接时在Enter password;若密码为空可缺省-p参数)
      

  5.   

    50就是用GUI方便一些,以前就这么用的,不过后来有了front,ems之后就一直没用。看来不同版本有其不同的备份恢复的方法!