怎样找回MYSQL数据库中删除的数据1 innodb引擎表开启了事务,执行dml语句 , 比如delete、update、insert之类,并且没有提交即commit操作的话,可以执行rollback进行回滚恢复 。如果是ddl操作,如drop、create、alter之类的操作时无效的
2 在进行删除操作之前有备份,比如mysqldump,物理备份数据文件之类的操作,那么可以恢复到删除前的数据
3 如果你的删除操作是直接对data下的文件进行删除,注意,不是粉碎文件操作 , 那么你可以尝试用磁盘恢复软件来找回被误删的数据文件;
除以上情况 , 其他真的是没法恢复了,不过貌似很多公司号称能够恢复,要收费,具体他们怎么恢复我就不晓得了 。
mysql怎么通过frm和ibd文件还原数据1、找回表结构,如果表结构没有丢失直接到下一步
a、先创建一个数据库,这个数据库必须是没有表和任何操作的 。
b、创建一个表结构 , 和要恢复的表名是一样的 。表里的字段无所谓 。一定要是innodb引擎的 。CREATE TABLE `weibo_qq0`( `weiboid` bigint(20)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
c、关闭mysql,service mysqld stop;
d、用需要恢复的frm文件覆盖刚新建的frm文件;
e、修改my.ini 里 innodb_force_recovery=1,如果不成修改为 2,3,4,5,6 。
f、 启动mysql,service mysqld start;show create table weibo_qq0 就能li到表结构信息mysql文档怎么恢复了 。
2、找回数据 。记得上面把 innodb_force_recovery改掉mysql文档怎么恢复了 , 需要注释掉 , 不然恢复模式不好操作 。这里有个关键的问题 , 就是innodb里的任何数据操作都是一个日志的记录点 。也就是如果mysql文档怎么恢复我们需要数据恢复,必须把之前的表的数据的日志记录点添加到一致 。
a、建立一个数据库 , 根据上面导出的创建表的sql执行创建表 。
b、找到记录点 。先要把当前数据库的表空间废弃掉,使当前ibd的数据文件和frm分离 。ALTER TABLE weibo_qq0 DISCARD TABLESPACE;
c、把之前要恢复的 .ibd文件复制到新的表结构文件夹下 。使当前的ibd 和frm发生关系 。ALTER TABLE weibo_qq0 IMPORT TABLESPACE; 结果不出意外肯定会报错 。就和我们开展数据开始说的那样,数据记录点不一致 。我们看看之前ibd记录的点在什么位置 。开始执行 import tablespace , 报错 ERROR 1030 (HY000): Got error -1 from storage engine 。找到mysql的错误日志,InnoDB: Error: tablespace id in file ‘.testweibo_qq0.ibd’ is 112, but in the InnoDB InnoDB: data dictionary it is 1. 因为 weibo_qq0 之前的记录点在112,当前的表只创建一次,所以记录点是1.
d、那怎么从1记录到112 。for ($1=1; $i=111; $1) {CREATE TABLE t# (id int) ENGINE=InnoDB;} 也许很奇怪,为什么是循环111,不是112 。因为在a执行创建表结构的时候已经记录增加了一次 。
e、修改表结构 alter table weibo_qq0 discard tablespace;使当前的表结构和ibd脱离关系 。复制.ibd到当前的目录结构 。
f、使原来数据的ibd和当前frm建立关系 。ALTER TABLE product IMPORT TABLESPACE; 这个时候没有错误,说明已经建立好了 。但是查询数据还是查不出来 。
g、相比这里大家已经知道为什么了,这个模式也不是说改了数据库就可以在生产环境使用 。更改 innodb_force_recovery=1 , 如果不成修改为 2,3,4,5,6 。直到可以 查询出数据为止,然后dump出来 。数据就备份出来了 。
h、把所有数据导出后,在新的数据库导入 。所有数据就生成了 。
扩展问题,很多时候我们是分表表结构怎么批量操作,提高速度呢 。用循环!循环把表的空间废弃掉 。
for i in `seq 0 111`; do mysql -uroot -P33061 -h127.0.0.1 -Dtestdd -e “CREATE TABLE inv_crawl_weibo_qq$i (id bigint(20) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id)) ENGINE=innodb “; done
ALTER TABLE inv_crawl_weibo_qq0 DISCARD TABLESPACE;
从备份数据把ibd复制cp到dd数据库下,注意复制过来的文件权限 。
循环导入表空间 。
ALTER TABLE inv_crawl_weibo_qq0 IMPORT TABLESPACE;
没有报错就导入成功了
怎么恢复mysql数据库mysql数据库恢复方法:
方法一:
命令恢复数据库:
mysql -u root –password=root密码 数据库名备份文件.sql
方法二:
第一步:用管理员权限登录并进入后台管理界面,点“数据库-资料恢复” 。
第二步:在数据恢复设置中选择“从本地文件”进行恢复,然后通过右边的“浏览”按钮找到之前保存下来的.sql文件 。
第三步:点“提交”按钮后将出现询问“分卷数据成功导入数据库,需要自动导入本次其他的备份吗?”一般继续点“确定”按钮即可 。之后的数据库文件就完全导入到当前网站了 。这时出现再次要求输入管理员帐号的提示 。访问网站地址时也会看到所有信息都恢复到备份数据库时的内容了 。
小提示:
不管采取哪种方式备份和恢复数据库 , 一定要注意备份和恢复时使用的版本要相同 , 甚至是语言种类也要一致,否则会存在乱码的问题 。
如何恢复mysql表中清除的数据1、第一步mysql文档怎么恢复,查询语句mysql文档怎么恢复:select* from table_name;或select * from table_name where [条件]
2、第二步mysql文档怎么恢复 , 增加语句或插入数据insert into table_name (clus...) values(values...)实例如图:
3、修改数据:update tablename set xx=xx,xxx=xx where xxx=xxx and xxx=xxx;
4、第四步mysql文档怎么恢复,删除语句delete table_name where 条件实例如图:
MySQL workbench local instance误删怎么找回?恢复整个数据库首先,如果要恢复的数据库是含有授权表的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_namels 命令产生更新日志文件的单列列表,更新日志文件根据服务器生成的顺序进行排序(要知道,如果您修改了其中的任何文件 , 排序的顺序都将改变 , 这将导致更新日志按错误的顺序使用) 。您很可能必须使用某些更新日志 。例如,如果自备份以来所产生的日志命名为update.392、pdate.393 等等,可以重新运行它们中的命令:% mysql--one-database db_nameupdata.392% mysql--one-database db_nameupdata.393…如果正在运行恢复并打算使用更新日志恢复由于失策的DROP DATA BASE、DROPTABLE或DELETE 语句而丢失的信息,应确保先从更新日志中删除这些语句 。恢复单个的表恢复单个表是很困难的 。如果有通过mysqldump 生成的备份文件并且它恰好不包含您想要的表数据,则需要抽取相关的行并用它们作为mysql的输入,这部分较容易 。困难的是抽取应用于该表的更新日志的片段 。您会发现: mysql_find_rows 实用程序对这方面有帮助 , 它可以从更新日志中抽取多行查询 。另一种可能性是用另一个服务器恢复整个数据库,然后将所要的该表的文件拷贝到原始数据库中 。这实际很容易!在将文件拷贝回数据库目录时,应确保原始数据库的服务器关闭 。
怎么恢复mysql数据库怎么恢复数据简单情况下:进入原来mysql安装路径下的data文件夹下,找到相应的库和ibdata1,进行copy,就可回复原来的数据 。
复杂情况下:
从另一台机上把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
【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数据恢复的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 网页远程虚拟机,网页远程虚拟机怎么用
- go语言服务器,go语言服务器框架
- thinkphpajax调试的简单介绍
- 手机银行什么买原油,中行原油宝在手机银行哪里
- 包含java实现排课系统代码的词条
- 鸿蒙2.0.0.23x版本,鸿蒙20033
- 华为路由器怎么拆下来图解,华为路由器登录入口
- 如何使用直播预告工具,如何使用直播预告工具视频
- python函数调用栈帧 python函数调用堆栈过程