生活就是被生下来,然后自己活下去!
分类: Mysql/postgreSQL
2016-11-14 11:18:54
印象中,如果你将mysql的datadir目录的所有文件,拷贝到另一个实例的datadir下,然后修改权限并启动,在5.1以前的版本是可以的,到5.5之后就不行的。
但是我今天发现了一 很有趣的现象,在此记录下,关于如何拷贝mysql5.6的datadir文件到另一个实例下,然后在启动恢复数据的问题。
大概步骤如下:
1.准备好空的实例(datadir为空的实例)。
2.将原来实例datadir下的所有文件拷贝至空实例的datadir下
3.删除空实例中拷贝来的文件中名为auto.cnf
4.修改空的实例的datadir权限为mysql.mysql
5.启动空的实例,可以看见数据恢复了(空实例的my.cnf文件要与原实例的尽量一致)。
注意:如果数据较多的话,启动的时间会较长。
安全问题:由于mysql5.6能这样恢复,所以数据库文件的系统层面的安全一定要做好,要防止拉取文件的现象发生,不然就回造成数据丢失,这个和sql注入中套取数据的危害更大,这个连表字段的注释都能找到,能更快的获取你的真实数据并造成危害。