1. 首页 > 科技快讯 >

mysql如何恢复数据_mysql数据怎么恢复

如何使用MYSQL数据库进行备份数据恢复

数据库毁坏发生的原因有许多,且程度各不相同。如果幸运的话,可能是一两个表的小毁坏(例如,如果您的机器由于断电而暂时停机)。如果不是这样,可能需要置换整个的数据目录(例如,如果某个磁盘瘫痪而且数据目录在它上)。在其他情况下也需要恢复操作,例如,当用户错误地删除数据库或表时,或者错误地删除表的内容时。不论这些不幸的事件发生是由于什么原因,都需要恢复它们。

mysql如何恢复数据_mysql数据怎么恢复mysql如何恢复数据_mysql数据怎么恢复


如果表被毁坏但没有丢失,可试着用myisamchk 或isamchk 来修复它们。如果修复实用程序能修复它们,就根本没有必要使用备份文件。如果表被丢失或不能修复,则需要恢复它们。

恢复过程包括两个信息源:备份文件和更新日志。备份文件将表恢复到进行该备份时的状态。但是,在备份和故障发生这段时间中,表通常已经被修改。更新日志包含了用来完成这些修改的查询。可以通过将更新日志作为对mysql的输入来重复这些查询(这就是为什么需要更新日志的原因。如果您还没有使更新日志有效,现在赶快做,并在进一步读取之前生成一个新的备份)。

恢复过程根据必须恢复的信息的多少而变化。事实上,恢复整个数据库比恢复单个的表要容易,因为对数据库应用更新日志比对表要容易。

恢复整个数据库

首先,如果要恢复的数据库是含有授权表的mysql数据库,将需要使用--skip-grant-tables选项运行服务器。否则,服务器将抱怨无法找到授权表。在恢复表之后,执行mysqladmin flush-privileges 来告诉服务器加载授权表,并用它们启动。

将原数据库目录的内容拷贝到其他的地方。例如,您可能会在稍后用它们进行崩溃表的事后分析检查(post-mortem examination)。

用新的备份文件重新加载数据库。如果您打算使用由mysqldump 加载的文件,则需要将它们作为mysql的输入。如果打算使用从数据库中直接拷贝的文件(如,用tar 或c p),则将它们直接拷贝回到该数据库目录中。但是,在这种情况下,应该在拷贝这些文件之前关闭服务器,然后再重新启动它。

用更新日志重做在进行备份后又修改了数据库表的查询。对于所有可用的更新日志,可使用它作为mysql的输入。指定--one-database 选项,使mysql只对想要恢复的数据库执行查询。如果您知道需要使用所有的更新日志文件,可在包含日志的目录中使用下列命令:

% ls-t-r-l update.(0-9) | xargs cat | mysql--one-database db_name

ls 命令产生更新日志文件的单列列表,更新日志文件根据服务器生成的顺序进行排序(要知道,如果您修改了其中的任何文件,排序的顺序都将改变,这将导致更新日志按错误的顺序使用)。

您很可能必须使用某些更新日志。例如,如果自备份以来所产生的日志命名为update.392、pdate.393 等等,可以重新运行它们中的命令: % mysql--one-database db_name

updata.392 % mysql--one-database db_name

updata.393

如果正在运行恢复并打算使用更新日志恢复由于失策的DROP DATA BASE、DROPTABLE或DELETE 语句而丢失的信息,应确保先从更新日志中删除这些语句。

恢复单个的表

恢复单个表是很困难的。如果有通过mysqldump 生成的备份文件并且它恰好不包含您想要的表数据,则需要抽取相关的行并用它们作为mysql的输入,这部分较容易。困难的是抽取应用于该表的更新日志的片段。您会发现: mysql_find_rows 实用程序对这方面有帮助,它可以从更新日志中抽取多行查询。

另一种可能性是用另一个服务器恢复整个数据库,然后将所要的该表的文件拷贝到原始数据库中。这实际很容易!在将文件拷贝回数据库目录时,应确保原始数据库的服务器关闭。

如何恢复mysql表中清除的数据

1、第一步,查询语句:selectfromtable_name;或selectfromtable_namewhere[条件]

2、第二步,增加语句或插入数据insertintotable_name(clus...)values(values...)实例如图:

3、修改数据:updatetablenamesetxx=xx,xxx=xxwherexxx=xxxandxxx=xxx;

4、第四步,删除语句deletetable_namewhere条件实例如图:

怎么通过data来恢复mysql数据?

可以尝试:

1、新建一个一样名字的数据库;

2、关掉mysql,把备份的data数据覆盖进现在mysql的data中

3、启动mysql进去看看

mysql数据表内容删除后怎么恢复

在解决的过程中,以下几种尝试:

1.如果开启了日志,直接mysqlbinlog 使用日志恢复即可。

2.如果不是删除了一个表的部分数据,而是删除整个表,那么可以在删除后马上用磁盘数据恢复软件尝试恢复。(因为删除表后会有文件被删除,而删除表的部分数据,文件还是存在)

3.找数据恢复的公司,使用工具分析ibdata1(分析过程参考一页一页查看有没有历史记录存在,使用ibdata1恢复数据,应该是在了解数据表结构的前提下,数据库除ibdata1外其他数据受损不能正常使用数据库时尝试,而不是删了表数据后恢复什么的。(事实上,这个文件是存储现有表数据的,其实也可以设置成每个表一个文件。)

4.mysql下有ib_logfile0和ib_logfile1两个文件,其实这两个文件里,记录了Mysql的一些事物日志,用于事务的前滚后滚,是Mysql自身使用的,这个文件用文本工具打开后,有很多乱码,但却可以查找到被删除的少量数据的insert记录,极少数的乱码通过前后语句找出了原文,终通过事物日志恢复了删除的文件。

注:用事物日志恢复,需要几个前提。

1:知道被删除数据的大概位置,不要这边查找,那边又不断有新数据插入。

2:因为有很多乱码,适用于查找少量数据,而不是用作大量数据的恢复,浪费体力。

3:如果二进制日志没开,没有备份,那么只能用这种方法恢复了。

如何恢复易客CRMMysql数据库

1、通过mysql命令进行恢复

前提:xampp中的mysql数据库正常运行。

1)开始->运行,输入cmd,进入dos界面;

2)在光标处输入d:,然后回车;

3)在光标处输入cdD:\xampp\mysql\bin,然后回车;

4)在D:\xampp\htdocs\storage找到您之前备份的数据文件,例如sqlbackup_20090219_121113.sql,需要把易客CRM恢复到2009年02月19号备份的数据,当然您需要根据自己的情况选择不同的备份文件。在第三步中的dos窗口下输入mysql--default-character-set=utf8-uroot-pecustomer

命令行解释:命令行中的ecustomer表示易客CRM的数据库名字,如果您是自行安装,不是使用xampp集成安装包,数据库名字可能会有所改变,这种情况您要把ecustomer改成您之前定义的数据库名字。

5)以admin身份进入易客crm系统,在控制面板下清除缓冲

通过以上4个步骤,即可成功恢复易客CRM数据库,恢复成功后,别忘了清除易客CRM的缓冲。

如果是linux操作系统,只需把上面的路径改一下,也可以成功恢复数据库,恢复数据库的mysql命令是一样的。

如果您在linux上安装的也是xampp,mysql命令的路径应该是/opt/lampp/bin/,注意执行linux下当前目录的命令应该是./mysql,而不是mysql,除非把mysql的pathexport出来。

如果您的数据库文件不是很大,也可以通过Phpmyadmin恢复,通过IE访问localhost/phpmyadmin/输入用户名和密码进入phpmyadmin,选择左边的ecustomer数据库,然后再选择右边的import,即可导入数据库。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息