大致上MySql数据库备份可以采用两种方式:一种就是直接导出sql语句或者易于导入的其他格式的sql存储文件,使用sql语句或者一些可视化客户端导出,这种方法非常简单,无需赘述;另一种方法就是拷贝出数据库文件,再将数据库文件转换成sql文件,这篇文章就介绍一下这种方法。

    ①查找数据库文件存放位置,MySql文件的后缀有三种形式*.MYD、*.MYI、*.frm;

  1. find / -name *.MYD 

   

    ②进入数据库存储文件目录;

  1. cd /opt/lanmp/mysql-5.1.63/win/data/ 

    ③使用copy命令把所有数据拷出去;

  1. copy mysql /home 

    ④此时只需将这些数据库文件转换成sql文件,这也是这篇文章里我要讲的重点,如果需要的时候再将sql文件用命令导入即可;

    ⑤新建一个数据库命名为mysqlbak,将刚才拷出来的文件夹拷入新数据库的data文件夹;

  1. find / -name mysqlbak 

  1. cd /home/mysql 
  2. copy * /www/wdlinux/mysql-5.1.63/var/mysqlbak/ 

    ⑥此时就已经可以看到新数据库mysqlbak里的数据了,跟原数据库mysql里的数据是一样的;

    ⑦使用命令导出数据库文件即可。

  1. mysqldump -uroot -p mysqlbak > /home/mysql.sql 

    ⑧这home文件夹下的文件mysql.sql文件就是易导入的数据库文件。需要注意的是所有的操作都必须在操作系统下用命令完成,而不提倡使用工具。因为在实际操作过程中,我们经常会遇到数据库里的数据库文件版本和数据库版本不一致,或者新旧数据库版本不一致的问题,再或者数据服务器版本与客户端工具不兼容等意想不到的问题,如果是这种情况,使用工具导出一般会报“1577:Cannot proceed because system tables used by Event Scheduler were found damaged at server start”的错误。说到这里,其实本文也提供了一种打开mysql数据库文件的方法,如果现在只有一堆*.MYD、*.MYI、*.frm文件,执行步骤⑤到步骤⑧即可。