TypechoJoeTheme

运维茶馆

统计
登录
用户名
密码

MySQL8通过data目录恢复数据

掌柜博主
2022-02-18
/
0 评论
/
4,148 阅读
/
279 个字
/
百度已收录
02/18
本文最后更新于2023年07月07日,已超过515天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

问题背景

环境:Windows server ,MySQL8.0.17
情况:MySQL备份只有data数据目录。系统上MySQL服务已经被删除了。
需求:安装相同版本MySQL,恢复数据。

解决方案

安装、初始化相同版本MySQL 8.0.17,略过。下载安装即可。
注意:修改MySQL配置的时候,不要用记事本。因为记事本会修改文件的编码,导致服务无法启动。

初始化好新安装的MySQL后,将服务停止。然后,在备份的data目录下面:找到下面6个文件,以及需要恢复的数据库目录,拷贝覆盖到新安装的MySQL data目录下。

ibdata1,ib_logfile0,ib_logfile1,ib_buffer_pool,auto.cnf,mysql.ibd

然后,启动MySQL服务:net start mysql
发现,使用原来的密码无法进入mysql。那就跳过密码启动服务。

# 经测试,将skip-grant-tables 添加到 my.ini [mysqld] 下。启动服务,也无法免密进入mysql。
# 尝试进入 mysql bin 目录,使用命令直接跳过密码启动,这样可以免密进入数据库:
mysqld --console --skip-grant-tables --shared-memory 

# 进入mysql后,将密码设置空:
mysql> use mysql;
mysql> update user set authentication_string='' where user='root'
mysql> exit

# ctrl+c 中断、停止:mysqld --console --skip-grant-tables --shared-memory  启动的服务。
net start mysql
# 启动服务后,输入下面命令,回车即可进入数据库:
mysql -u root -p 

进入数据库后,发现数据回来了。

赞(0)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

运维茶馆

本文链接:

https://opstea.com/archives/mysql8-recovery-data.html(转载时请注明本文出处及文章链接)

评论 (0)