问题背景

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

解决方案

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

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

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

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

  1. # 经测试,将skip-grant-tables 添加到 my.ini [mysqld] 下。启动服务,也无法免密进入mysql。
  2. # 尝试进入 mysql bin 目录,使用命令直接跳过密码启动,这样可以免密进入数据库:
  3. mysqld --console --skip-grant-tables --shared-memory
  4. # 进入mysql后,将密码设置空:
  5. mysql> use mysql;
  6. mysql> update user set authentication_string='' where user='root'
  7. mysql> exit
  8. # ctrl+c 中断、停止:mysqld --console --skip-grant-tables --shared-memory 启动的服务。
  9. net start mysql
  10. # 启动服务后,输入下面命令,回车即可进入数据库:
  11. mysql -u root -p

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

发表评论

邮箱地址不会被公开。 必填项已用*标注