mysql数据库数据丢失
⑴ mysql8 ibdata文件丢失怎么恢复数据
因为磁盘空间不足,我的一个虚拟机服务器崩溃了。结果数据库服务器进程无法启动,数据也就无法导出。只能想办法从数据库原始文件 ibdata 和 frm 文件中恢复数据库。
因为没有经验,好不容易才找到了恢复方法。特此记录,以备后用。
磁盘空间不足之后,mysqld 进程无法启动,提示“Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)”。这真是让人无比头大,数据库根本连接不上。
目录 Contents
1. 保存原始数据库文件
2. 恢复方法
3. 参考资料:
1. 保存原始数据库文件¶
好在数据库原始文件还在。在我的系统环境和配置情况下,这些文件位于 /var/lib/mysql/ 文件夹下面。假设数据库名是 test,则这些文件表现为:
--mysql
|--test
|--1.frm
|--2.frm
|...
|--mysql
|...
|--ib_logfile0
|--ib_logfile1
|--ibdata1
|...
这些就是原始数据库文件,可以用来恢复数据库。将这些文件额外保存一份,以防万一。
2. 恢复方法¶
我的原始虚拟机完全没有磁盘空间而无法启动数据库服务器进程。虽然试着删除一些不需要的文件,但是数据库却始终无法连接。于是我新建了一个几乎一样的虚拟机(当然磁盘加大了),试图将这些数据库文件导入并恢复数据库。
在经历了很多错误之后,终于找到了正确的方法:
安装完成新服务器之后,通过命令行新建了与原来一样的数据库:数据库名称、用户名、密码都一样。如果有多个数据库需要恢复,就都给建好。(跟配置新服务器一样,参见安装和配置 MYSQL 数据库服务器。)
停止 mysqld 进程
service mysqld stop
将备份的原始数据库文件中的所有 .frm 文件(保持原来的目录结构)和 ibdata1 文件复制到新服务器的数据库文件目录中(如果新服务器操作系统和配置环境一样,那么目录结构也一样),其它文件不要。
使用 -innodb_force_recovery=6参数启动数据库服务器进程,这里是
/etc/init.d/mysqld start -defaults-file=/etc/my.cnf -standalone -console -innodb_force_recovery=6
OK,数据库恢复完成。
⑵ mysql数据库被删除怎么恢复
1 找个别的机器安装个同版本的mysql或从已安装同版本的其他机器上(非同版本的也可以试下):
拷贝 mysql/data/mysql 目录到你的mysql/data/ 下吧
2 试着启动mysql服务,如果能启动了,理论上应该丢失的只有用户、授权等一些系统信息,不影响你的使用的数据;
如果不能启动,看错误日志,争取启动了。
3 赶紧把数据备份一份出来,重新把所有库(只是你后来创建的业务相关的库,不包括mysql库)都删了,重新导入一遍。理论上不这样也可以,但只是非生产重要的环境下。
4 重新做用户授权。
⑶ mysql数据库突然丢失怎么回事
一般不会丢失的,出现丢失的可能性
修改配合文件了,改变了data文件夹;
重新安装mysql,设置了新的存储路径;
被别人执行删除操作了;
⑷ 怎么恢复mysql数据库怎么恢复数据
简单情况下:进入原来mysql安装路径下的data文件夹下,找到相应的库和ibdata1,进行,就可回复原来的数据。
复杂情况下:
从另一台机上把MySQL数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和操作。经过如下几种情况的操作。
1. 在本地重装MySQL(安装目录D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夹拷贝至D:\Program Files\MySQL\MySQL Server 5.0\。结果,失败:数据库连接错误。
2. 卸载后重装MySQL,将D:\Program Files\MySQL\MySQL Server 5.0\下的数据备份,只把mysql\data文件夹全部内容拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。
3. 卸载后重装MySQL,将mysql\data文件夹里的cf1,last文件夹(这两个是原来MySQL里的数据库)拷贝进D:\Program Files\MySQL\MySQL Server 5.0\data。连接成功,在Navicat for MySQL里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(3.4G大,明显存储了元数据)拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原来的ibdata1文件。重启电脑,打开Navicat for MySQL,连接成功,数据可以访问操作。
至此,操作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说MySQL失效了。
⑸ MYSQL数据库丢失了数据怎么恢复
数据库丢失了最好的恢复方法是从备份中还原文件,数据库的文件一般都会有备份。如果备份也损坏了,无法进行还原,那就需要使用数据恢复软件来恢复了。从网上找恢复软件,然后扫描一下,看是否可以搜索到需要的文件。
⑹ mysql数据库被删除了,怎么恢复吗
1
找个别的机器安装个同版本的mysql或从已安装同版本的其他机器上(非同版本的也可以试下):
拷贝
mysql/data/mysql
目录到你的mysql/data/
下吧
2
试着启动mysql服务,如果能启动了,理论上应该丢失的只有用户、授权等一些系统信息,不影响你的使用的数据;
如果不能启动,看错误日志,争取启动了。
3
赶紧把数据备份一份出来,重新把所有库(只是你后来创建的业务相关的库,不包括mysql库)都删了,重新导入一遍。理论上不这样也可以,但只是非生产重要的环境下。
4
重新做用户授权。
⑺ mysql数据库删除了怎么恢复
常见的情况:
1、如完全丢失数据库文件,用一般数据恢复方式不能恢复2、表被删除,甚至被重写,表行被删除3、索引错误,或者IAM断裂4、数据库大面损坏,可以指定任意表或者字段提取数据5、系统表损坏甚至完全损坏,可以提取指定数据
Oracle数据库恢复
1、undo,systen表空间损坏的恢复2、误delete数据的恢复,误删除表空间drop,truncate表的恢复3、各种ora-错误的恢
复4、DMP文件不能导入数据库以及LOB数据恢复等情况5、oracle数据库中数据文件出现现坏块情况下的恢复6、oracle数据库无数据库文件但
有有日志的情况下的恢复7、能够在系统表和空间文件丢失,变成0字节下完整的恢复数据8、只要没有覆盖表空间件,都有信心恢复数据。无论你是什么系统
(Windows,UNIX)等,无论什么存储设备(硬盘,磁盘阵列)
大
环乙木数据恢复是一家专门做手机数据恢复业务的公司,拥有先进的数据恢复认证设备,使用的几乎全部是自有技术,对于数据恢复,采用最先进的数据分析和处理
方法,对手机数据丢失的数据恢复成功率在95%以上。如果您已经多方咨询,别的手机数据恢复公司都告诉您,数据恢复无法实现。我们可以很自信地告诉您,这块工作是我们的强项。我们可以手机、硬盘、服务器、U盘、数据库数据恢复等所有手机数据,且我
们可以为大家提供大量的成功案例以供参考,让你对我们更具信心。
⑻ mysql数据库表数据丢失怎么办
:MYSQL没有删除数据就没有丢,你查找机器里有没有以你的数据库名为文件夹名的文件夹,以表名为文件名的文件,如果有,那就是你的数据库和表,就没丢
⑼ 如何修复MYSQL数据库因断电造成的数据损坏
修复MYSQL数据库因断电造成的数据损坏
在使用MySQL数据库的时候,都碰到过因断电造成数据库损坏的情况,大家都知道,断电或非正常关机是导致MySQL数据库出现错误最常见的原因,如何恢复MySQL数据库是大家都非常头痛的问题。目前有方法可以帮助大家恢复损坏的MySQL数据库吗?
当用户出现断电造成的MySQL数据库丢失损坏时,如果能进入MySQL软件,但是提示错误信息,用户可以通过“系统维护”—“数据库压缩修复”,压缩下数据库(有些软件在“系统设置”—“系统维护”—“数据库备份\恢复”中),这种方法只适合一小部分的数据库故障修复,功能性并不高。
现在网络上有两种比较推荐使用的MySQL数据库恢复方法,一种方法使用MySQL(和PHP搭配之最佳组合)的check
table和repair
table
的sql语句,另一种方法是使用MySQL(和PHP搭配之最佳组合)提供的多个myisamchk,
isamchk数据检测恢复工具。在很多用户看来,这两个方法都比较复杂,并不适合大多数的用户使用。另外,这两种方法并不能有效的恢复MySQL数据库,可能还会造成数据库被进一步损坏,造成大家无法挽回的损失。根据以上几个原因,这两种MySQL数据库恢复方法并不建议大家使用。
。
数据库被损坏分以下几种情况:
1、严重损坏
2、轻度损坏
3、有些表被损坏或有些表的部分记录被损坏