备份MYSQL数据库 - ydirone的日志 - 网易博客

来源:百度文库 编辑:神马文学网 时间:2024/04/20 22:44:55

备份MYSQL数据库

sql 2009-03-24 14:06:43 阅读122 评论0 字号:大中

使用MYSQL进行数据库备份,网上说的方法有2种:一种是用文件夹覆盖,一种是用官方的mysqldump.exe来备份,参考网上的教程,结合实际,本人提供以下几个参考意见:

  
  一、文件夹覆盖备份法(网上教程)   


  目的:备份hostA主机中一个mysql数据库TestA,并恢复到到hostB机中  

  试验环境:   

  操作系统:WinXPsp2,Mysql4.1.8,MySQL-Front.   

  在hostA中安装mysql数据库并建立TestA数据库  

  hostB机安装mysql数据库,没有TestA数据库  

  方法步骤:   

  启动MySQL-Front察看HostA和HostB中的数据库列表,在HostB中没有TestA数据库   

  找到HostA中mysql的安装目录,并找到数据库目录data   

  在我的试验环境中,这个目录是   

  C:\Program Files\MySQL\MySQL Server 4.1\data

  找到对应数据库名称的子目录   

  C:\Program Files\MySQL\MySQL Server 4.1\data\TestA   

找到HostA中的目录MySQL Datafiles

  在我的试验环境中,这个目录是   

  C:\MySQL Datafiles
  将这个目录 覆盖HostB的MySQL Datafiles目录。
  刷新HostB的MySQL-Front察看一下数据库列表,我们看到TestA已经出现,并且作查询修改等操作都正常,备份恢复恢复成功。
  试验结论:Mysql的数据库可以通过文件形式保存,备份,恢复只要将相应文件目录恢复即可,无需使用其它工具备份。   

       本人测试结果:我使用的是MySQL 5.0.8的,经过以上方法测试失败!


  二、正规的方法(官方建议):

  导出要用到MySQL的mysqldump工具,基本用法是:   

  mysqldump [OPTIONS] database [tables]  

  如果你不给定任何表,整个数据库将被导出。 

       一般使用的命令:

       mysqldump --quick --database ondemand1 --u root >bacqup.sql

      这样就能把数据库中ondemand1的表全部备份出来。

     其中参数的格式是:--(两横杠,不是我们常用的单横杠)

     quick是在数据比较多的时候,不用该参数的话,所有的数据都会先在内存缓存,接着才导出,这样会导致服务器运行减慢!

     --u 必须要加一个用户名,否则系统会提示你进不了ODBC数据库的。

    >backup.sql则是你备份数据库的目标文件名

    数据导入:

     可以使用MySQL-Front工具把上面导出的backup.sql数据库导入执行。
 
   

    以下导入方法未测试是否可行!     

    导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:   

  mysqladmin create target_db_name   

  mysql target_db_name < backup-file.sql