mysql通过拷贝数据库源文件恢复数据方法

admin3年前主机评测67

场景:

mysql数据库突发异常无法启动且平时未做备份时的特殊处理办法。一般MyIASM可以直接拷贝过去,就可以完成备份的还原。但是如何是InnoDB类型的mysql数据库时,很多用户发现直接拷贝源文件竟然无法读取数据和使用,这时候一定要将所有mysql下的数据一起备份下来,千万不要只备份数据库文件,还需要备份“

ibdata1

”等文件。

mysql通过拷贝数据库源文件恢复数据步骤:

第一步:通过MySQL的配置文件找到源文件位置,并将源文件拷贝到本地

如下图:

CentOS系统中MySQL的配置文件位置及源文件位置

Ubuntu系统中MySQL的配置文件位置及源文件位置

以上目录位置皆为安装MySQL时默认位置!!!

第二步:将/var/lib/mysql中的mysql目录拷贝出来,mysql目录中包含了以下文件,如图:

其中

蓝色目录

对应我们的数据库,里面存放的是该数据库的表结构及表数据、索引结构等数据。

mysql、performance_schema、sys这三个库是MySQL系统库,其他的是我们自己的数据库,在恢复数据时我们只需要将ibdata1和我们自己的库目录拷贝到新的库中去。

第三步:找一台服务器(可以是虚拟机),在上面新安装一个MySQL服务,安装成功后,将

MySQL服务stop掉

,再将我们本地保存的待恢复的源文件

ibdata1

和我们自己的库目录拷贝到新服务器上MySQL的源文件目录(

/var/lib/mysql

)下,并将该目录下的

ib_logfile0、ib_logfile1

两个文件删除掉,然后注意拷贝进去的源文件的权限(即用户、组)是否和MySQL安装时的用户和组一致,若不一致,则修改一致后再启动MySQL服务,否则可能会出现启动异常或读取不到数据等情况。

第四步:启动成功后,通过工具连接该数据库即可看到恢复的数据,然后就可以导出成SQL文件了。

最关键一步:

复制的时候,应将数据目录下的

ibdata1文件一并复制过去

,并且删除ib_logfile0,ib_logfile1等文件!

修改目录权限命令:

#先进到/var/lib目录

cd /var/lib

#修改mysql目录及其下所有子目录和文件的所属用户

chown -R mysql mysql

#修改mysql目录及其下所有子目录和文件的所属用户组

chgrp -R mysql mysql

#修改拷贝进去的数据库目录的权限与MySQL的系统库目录权限一致

chmod 750 yourBaseName

#修改ibdata1文件的权限与MySQL的系统自带文件权限一致(可做可不做,我是强迫症)

chmod 640 ibdata1

#再进入每个拷贝的库文件目录中将其中的文件权限修改一致(可做可不做,我是强迫症)

chmod 640 *

此方法并非百分百有效,仅在应急时使用,平时做好备份!!平时做好备份!!平时做好备份!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

mysql直接拷贝data目录下数据库源文件还原数据库方法

这篇文章主要介绍了mysql直接拷贝data 目录下数据库源文件还原数据的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教!mysql 拷贝data目录下的数据...

mongodb是什么类型的数据库?mongodb和mysql的区别是什么?

MongoDB是什么类型的数据库?MongoDB是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非...

宝塔面板mysql内存占用高如何优化

宝塔面板mysql内存占用高如何优化?其实主要吃内存的一般就是mysql程序,其他的宝塔和Nginx还有php基本不怎么吃内存的。内存占用非常的小。但是我们如果服务器是1G或者512M的内存基本就很吃...

redis和mysql哪个好?MySQL和Redis的区别

redis和mysql哪个好?redis在很多方面同时具备mysql及Memcached使用特征,在某些方面则更像MySQL。由于Redis数据不能超过内存大小,一方面需要进行事先容量规划,保证容量足...

phpstudy mysql启动不了的解决方法

很让人头疼的是Apache正常启动,MySql就是无法启动,百度上说的也不咋有用(不一竿子打死,最终解决办法的前身还是百度的),百度上大多数是说的端口问题,Apache是80,MySql是3306,然...

阿里云ECS云服务器(linux系统)安装mysql后远程连接不了(踩坑)

昨天买了一年的阿里云服务器,系统是linux Centos7的,满怀憧憬的装了个mysql,接下来的一天让我差点怀疑人生。。。怎么装mysql就不多说了,反正我装了三遍,每次在阿里云上都能本地连接数据...