前述

这次是接到一个新需求,需要将原本磁盘的数据转移到新的磁盘上,原本是一个复制粘贴然后修改配置的小事,却足足折腾了一天,为此,特意将此情况记录下,以此来加深自己的印象,同时也为大家在解决此类问题时提供一个方案借鉴。

一、 正确转移流程

首先停止mysql服务,然后将数据库的data文件夹整体复制到其他位置下,修改my.ini中的datadir到新位置

二、安装新数据库应用后旧数据库的转移

和上面类似,将my.ini中的datadir修改到旧数据库的位置,然后启动,此时有概率会报错,查看配置的data目录下WIN-**.err错误文件排查错误,如果是提示redo相关错误,将#innodb_redo下的文件删除即可。

三、遇到的问题

1. 启动mysql服务失败,但无错误日志输出

检查my.ini文件配置有无报错,如果没有配置错误,可能是文件编码错误,文件修改后默认存储时UTF-8格式,需要另存为ANSI格式

2. The innodb_temporary data file ‘ibtmp1’ must be writable

这个问题看似权限问题,但是在我增加了data目录的权限后仍然报出该问题,我的解决措施是将MySQL服务登录类型网络服务更改为了本地系统,以此解决了此问题,但是为什么会导致这个问题产生还有待深入研究。

3. 使用innodb_force_recovery修复

如果始终无法启动,查看err日志报出的问题仍然解决不了的话,可以使用innodb_force_recovery配置尝试修复启动。

[mysqld]
innodb_force_recovery=N    # N=1~6

关于innodb_force_recovery的介绍可以参考MySQL 8.0 Forcing InnoDB Recovery

四、在解决过程中的其他思路

这些思路是在解决这次转移数据库的过程中排查问题时采取的措施,因为MySQL数据库一直报出的错误日志是关于ibd文件错误或表空间错误等情况,错误判断成了是ibd文件损坏等情况,所以刚开始的解决方向一直放在了处理ibd文件上,才有了下面几个措施。

1. 通过ibd文件恢复数据

可以在data中看到每个数据库的文件夹,里面存放了ibd格式的文件,对应了数据库中的每张表,可以直接使用该表恢复数据表的数据,但前提是当前数据库存在相同数据结构的表

# 解除表空间占用,此步骤会删除当前表对应的ibd文件
alter table 表名 discard tablespace;

然后将需要恢复的ibd文件放进去,需要和数据表同名

# 关联新的数据表空间,如果表结构不一样,此处会报错
alter table 表名 import tablespace;

2. 通过ibd文件获取表结构

如果仅仅只有ibd文件没有表结构的话比较棘手,需要通过MySQL自带的ibd2sdi工具将ibd导出成结构文件json。

ibd2sdi --dump-file=***.json ***.ibd

导出后是一串json,放到json格式化工具中查看column相关数据。

五、最后的话

这次出现这个情况主要还是在于自己缺乏数据库运维相关经验,没有对数据库管理有一个系统的操作,导致了操作期间出现了不符合规范的情况出现了本次问题,以此记录,警醒自己。

记录MySQL8.0迁移data文件夹所引发的问题相关推荐

  1. Linux下mysql数据库从服务器A只迁移DATA文件夹到服务器B

    Linux下mysql数据库从服务器A只迁移DATA文件夹到服务器B 操作流程 获取数据 迁移数据 运行新的数据库 后记 操作流程 前言:近期做了一个项目,由于mysql数据库中的数据比较庞大,考虑转 ...

  2. MySQL数据库配置data文件_MySQL数据库之MySQL数据库迁移data文件夹位置详细步骤

    本文主要向大家介绍了MySQL数据库之MySQL数据库迁移data文件夹位置详细步骤 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 由于yum安装mysql的时候,数据库的da ...

  3. MySQL8.0 通过data文件和SQL语句恢复数据库

    一.通过data文件恢复data里的数据库 Mysql里的数据一般会自动保存到C:\ProgramData\MySQL\MySQL Server 8.0\Data目录下,卸载前要将其备份. 目前进测试 ...

  4. mysql8.0.18ZIP版下载与安装(以及无my-default.ini文件和data文件夹的解决方法)

    mysql8.0.18ZIP版下载与安装(以及无my-default.ini文件和data文件夹的解决方法) 参考文章: (1)mysql8.0.18ZIP版下载与安装(以及无my-default.i ...

  5. mysql 删除数据后myd_Windows下的MySQL删除data文件夹后……

    MySQL删除data文件夹后,怎么都无法启动了,出现错误: 150106 9:28:43 [Note] Plugin 'FEDERATED' is disabled. wampmysqld: Tab ...

  6. Windows 10 下 转移MySQL 8.0的数据库文件夹(靠谱版)

    随着数据的不断导入,MySQL中的数据越来越多,所占据的存储空间也越来越大.默认安装MySQL时,其会将数据库文件放到默认目录 C:\ProgramData\MySQL\MySQL Server 8. ...

  7. MYSQL(mysqld --initialize --console初始化的时候报错:Can‘t create directory ‘C:\web\mysql-8.0.11\data\‘)

    标题MYSQL安装报错 原因:在MYSQL (mysqld --initialize --console)初始化的时候报错: mysqld: Can't create directory 'C:\we ...

  8. Windows 10 下 转移MySQL 8.0的数据库文件夹

    Windows 10 下 转移MySQL 8.0的数据库文件夹 随着数据的不断导入,MySQL中的数据越来越多,所占据的存储空间也越来越大.默认安装MySQL时,其会将数据库文件放到默认目录 C:Pr ...

  9. MySql-5.1.32的data文件夹找不到是什么原因呢?

    我安装的这个版本的MYSQL没有data文件夹,但是可以正常使用,不知道你们的有没有呢?怎么才可以出现data文件夹呢,没有data文件夹,那我的数据库文件存放在什么地方了呢?我搜索了整个电脑都没有找 ...

最新文章

  1. JDBC与Druid简单介绍及Druid与MyBatis连接数据库
  2. Android10.0 ContentProvider原理分析
  3. vs2015网站发布时,设置页面合并后程序集的文件版本
  4. windows系统托盘tray
  5. 解决mysql5数据库连接超时问题
  6. O(1), O(n), O(logn), O(nlogn) 的区别(转自ted 常)
  7. nodejs入门学习笔记一——一个完整的http路由服务实现
  8. 汇编指令:push、pop
  9. FileSystemWatcher触发多次Change事件的解决办法 .
  10. Git(5):其他用法
  11. 20165220预备作业3 Linux安装及学习
  12. scala文件通过本地命令运行
  13. imx8 uuu烧录
  14. 直击灵魂:软件研发的第一性原理与10倍效能
  15. WSO2一般使用教程
  16. 《周易》经典语录,感悟人生智慧(二)
  17. Anbox之server端audio播放流程(十二)
  18. 20190916CF训练
  19. linux 内核2.6.35.3,linux-2.6.35.3内核移植(s3c2440)
  20. js 解决数据精度丢失问题

热门文章

  1. 马原期末复习3. 经济基础和上层建筑之间的矛盾
  2. 思科CISCO 交换机命名规则
  3. java一句话木马_jsp一句话木马总结
  4. php7 一句话木马,一句话木马的套路
  5. java pppoe_Linux下pppoe设置
  6. seo基础教程,seo基础教程优选
  7. Android监听返回键、Menu键、Home键、
  8. 全球及中国果蔬烘干机行业运行形势及未来发展趋势报告2022-2028年
  9. 目标检测算法回顾之Anchor free篇章
  10. 【Linux】proc详解