场景: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 *
此方法并非百分百有效,仅在应急时使用,平时做好备份!!平时做好备份!!平时做好备份!
centos8怎么设···
常见问题阿里云国际分销商:拆解阿里云:看懂云企业的尴尬 0 本公司提供阿里云国际版,华为云国际版···
阿里云国际阿里云生态伙伴体系大变革,未来三年投入10亿专项资金业务合作请联系客服TG:阿里云国际 ,本公司提供阿里云国际版,华为云···
阿里云国际ubuntu远程连接···
常见问题CentOS 7如何···
技术支持海外云服务器哪里购买:阿里云国际海外云服务器业务合作请联系客服TG:阿里云国际 ,本公司提供阿里云国际版,华为云国际版账···
阿里云国际海外云服务器免实名购买:阿里云国际业务合作请联系客服TG:阿里云国际 ,本公司提供阿里云国际版,华为云国际版账号 腾迅云···
阿里云国际阿里云国际版实名账号业务合作请联系客服TG:阿里云国际 ,本公司提供阿里云国际版,华为云国际版账号 腾迅云国际版账号&n···
阿里云国际《传奇4》上线ste···
常见问题centos8安装p···
常见问题Copyright © 2023 麒麟云技公司 版权所有