将MySQL的库目录复制到data中,恢复库中数据

# 前言

前段时间要重启一下mysqld服务,结果不知道为什么mysqld关掉后就再也起不来了😭

尝试多次后无果,准备重装MySQL。不过在卸载MySQL前把datadir目录复制了一份,准备在重装后用datadir目录恢复数据

下面开始恢复数据

恢复数据

注:以下步骤中如果你遇到了问题,可以尝试下文中的下一个标题:遇到的问题和问题的解决方案中提供的解决方案

  1. 卸载前复制一份datadir,命名为data_old(便于区分)
  2. 重装并能成功启动MySQL后,先关闭mysqld,再将datadir(这是新安装的MySQL的数据目录)复制一份,命名为data_copy
  3. 假设datadir指定的目录为data。删除data中的ibdata1ib_logfile0ib_logfile1。将data_old中的ibdata1复制到data
  4. data_old中你希望恢复的库的目录都复制到data
  5. 重启mysqld服务
  6. 尝试查询库和库中的表数据,数据存在且可访问表示数据恢复成功、

遇到的问题和问题的解决方案

  • 在步骤5中出现打开库后提示表不存在。解决方案:重启mysqld

  • 在步骤5中出现打开表时提示权限问题,打不开表。解决方案:查看data目录的权限用户和你要恢复的库目录的权限用户是否一致。解决方案:修改库目录的权限用户

    我当时旧库目录的权限用户是root,而data目录的权限用户是mysql,结果打开表时出现权限问题。尝试chown -R mysql:mysql <databaseDir>

为什么不直接用旧data目录取代新data目录

我不知道你们能不能,反正我不能😂。尝试将整个旧的data目录覆盖新的data,结果mysqld根本运行不起来。所以我只能一个一个把库目录从旧data复制到新data

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值