mysql删除被的数据库怎么还原

mysql删除被的数据库怎么还原,第1张

1 找个别的机百器安装个同版本的mysql或从已安装同版本的其他机器上(非同版本的度也可以试下):

拷贝 mysql/data/mysql 目录到你的mysql/data/ 下吧

2 试着启动mysql服务,如果能启动了,理论上应该丢失的只有用户、授权等一些知系统信息,不影响你的使用的数据

如果不能启动,看错误日志,争取启动了。

3 赶紧把数据备份道一份出来,重内新把所有库(只是你后来创建的业务相关的库,不包括mysql库)都删了,重新导入一遍。理论上不这样也可以,但只是非容生产重要的环境下。

4 重新做用户授权。

以上步骤参考一下,试一下

mysql数据恢复过程

从另一台机上把mysql数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和 *** 作。经过如下几种情况的 *** 作。

1

在本地重装mysql(安装目录d:\program

files\mysql\mysql

server

50),直接把mysql文件夹拷贝至d:\program

files\mysql\mysql

server

50\。结果,失败:数据库连接错误。

2

卸载后重装mysql,将d:\program

files\mysql\mysql

server

50\下的数据备份,只把mysql\data文件夹全部内容拷贝到d:\program

files\mysql\mysql

server

50\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。

3

卸载后重装mysql,将mysql\data文件夹里的cf1,last文件夹(这两个是原来mysql里的数据库)拷贝进d:\program

files\mysql\mysql

server

50\data。连接成功,在navicat

for

mysql里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(34g大,明显存储了元数据)拷贝到d:\program

files\mysql\mysql

server

50\data里,代替原来的ibdata1文件。重启电脑,打开navicat

for

mysql,连接成功,数据可以访问 *** 作。

至此, *** 作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说mysql失效了。

我们都知道,在mysql (这里只探讨innodb) 中delete数据,并非真实删除,而是在这行数据上打了一个del的标记,所以这行占用的空间也并不会释放,但是空间可以被复用,所以期望用delete数据来释放空间的同学可以醒醒了。这样就造成了空间上的碎片,那么如果干掉这些碎片呢。

这里先说结论,alter table语句可以触发表重建,消除碎片空间。

mysql中的数据存储结构大概是下面这个样子的

而delete掉的标记会记录在头信息中。

做个实验,看看空间是否真的没有释放;

创建一张表user,并插入很多数据

查看表的文件大小

再随便插入几条

ok这里看到文件大小增加了16k,这是因为mysql的一页就是16k,所以文件大小是16k、16k的增长的。

这时候我们删除大量的数据再次查看文件大小,仍然是272k,索命,数据虽然删除,但是空间没有释放。

这里我们对主键执行一个alter table语句

再次查看文件大小

ok 文件大小明显的减少,这里说明主键的alter语句会重建表,并且释放碎片空间;

这时候我们再删除大量的数据再次查看文件大小,这里我们对普通列执行一个alter table语句

再次查看文件大小

ok 文件大小明显的减少,这里说明普通列的alter语句会重建表,并且释放碎片空间;

使用mysql中的日志功能。

首先:将最近的二进制类型的日志文件存成文本文件导出,命令如下:

mysqlbinlog

F:/wamp/mysql-bin000045

>

F:/testtxt

其次:打开保存的txt文件,文件格式如下:

其中at

1099代表第1099个命令(姑且这么记),查询这些命令,看看需要回复的命令在什么地方,然后执行命令。

最后:执行回复命令,如下:

mysqlbinlog

--start-position="123"

--stop-position="531"

F:/wamp/mysql-bin000045

F:/testtxt

|

mysql

-uroot

-p

这样就可以完成数据库的回复了!!!

以上就是关于mysql删除被的数据库怎么还原全部的内容,包括:mysql删除被的数据库怎么还原、如何通过mysql的data文件恢复数据库、Mysql中删除数据造成的碎片如何修复等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9833038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存