当前位置:数据库 > MySQL >>

MYSQL如何在不停止MYSQL服务的情况下,备份数据库文件夹中.frm.myi.myd的所有文件到其他文件夹

MYSQL如何在不停止MYSQL服务的情况下,备份数据库文件夹中.frm.myi.myd的所有文件到其他文件夹 我有一个服务器,使用PHP和MYSQL的架构,现在我希望做出一个BAT(批处理)文件进行计划任务备份。 但是前提是我的服务器mysql不允许关闭,因为下面客户端一直在访问。当然可以花个几分钟锁定表没问题,那么我要如何将数据库文件夹中.myi.myd.frm所有这类的文件复制到其他文件夹中呢? 比如:我的数据库mysql在d:\mysql\mysql5中 我的数据库文件夹是d:\mysql\sqldata 我希望将d:\mysql\sqldata里面的.myi.myd.frm所有文件全部无损无压备份到d:\mysqlbak文件夹中。 请问这个批处理应该如何写呢?
补充:不能直接copy啊。。。那个会提示表正在易做图作无法复制。。。 

如果不直接备份.frm.myi.myd的话恢复表比较麻烦不是吗? 

回复:coyeah
关于这个我有考虑过,但是我经过半个多月的测试发现,如果我关闭MYSQL服务备份后再开启MYSQL服务,经常出现表异常,甚至有两次两个关键表数据全部丢失,我只好拿前一天的备份进行覆盖,但是当天的数据无法修复(.myd已经变为0字节)。。。
鉴于关闭mysql服务备份期间出现了3次比较大的问题(表数据无故不能读取,无故丢失,无故损坏),所以我才考虑在不关闭mysql服务的情况下进行操作。。还请不吝赐教,谢谢!
答案:明确的回答你:

如果你在不停止mysql的情况下 直接备份里面的数据文件是不可行的 
就像你说的:会出现无法复制情况

其实做数据备份:除了要备份sql文件以外还要备份 直接的数据库文件最为安全
你的做法是对的

其实临时停止一下mysql 大概一分钟左右 这个成本获得的收获是值得的
其他:直接写脚本Copy就可以吧???mysql不像mssql复制都不让复制。 直接复制.frm .myi .myd这样备份是不安全的,也是不可靠的。

建议你使用bat来执行MYSQL程序备份。

例如MYSQL的BIN目录在 d:/mysql/bin

那么你可以:

>d:/mysql/bin/mysqldump -h 主机IP -u 用户名 -p密码 数据库名 > d:/mysqlbackup/数据库名.sql

这样来备份。
你可以现在CMD下面测试一下。记得-p和密码是连在一起的,不要用空格分开。

上一个:GG map 与mysql数据库结合问题
下一个:关于mysql数据库备份的问题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,