重装Ubuntu系统后Mysql 数据恢复历程

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 重装Ubuntu系统后Mysql 数据恢复历程

1.概况


为服务器重装了Ubuntu 16.04-server, 之前的一些数据丢失了, 好在硬盘并未格式化, 至少还有点希望能恢复Mysql的数据


2.现有条件


把旧的硬盘挂载到电脑上, 找到数据库目录下的文件: 默认的数据库目录为: /var/lib/mysql

硬盘挂载目录为: /media/user/f101a309-d55a-4a50-8e1c-d63534146b6f

$ ll /media/user/f101a309-d55a-4a50-8e1c-d63534146b6f/var/lib/mysql
-rw-r-----  1   122 vboxusers       56 9月   6  2019 auto.cnf
-rw-------  1   122 vboxusers     1680 11月 19 06:09 ca-key.pem
-rw-r--r--  1   122 vboxusers     1112 11月 19 06:09 ca.pem
-rw-r--r--  1   122 vboxusers     1112 11月 19 06:09 client-cert.pem
-rw-------  1   122 vboxusers     1676 11月 19 06:09 client-key.pem
-rw-r--r--  1   122 vboxusers        0 2月  25 09:40 debian-5.7.flag
drwxr-x---  2   122 vboxusers     4096 9月  17  2019 FactoryTest/
-rw-r-----  1   122 vboxusers      750 4月   1 09:07 ib_buffer_pool
-rw-r-----  1   122 vboxusers 79691776 4月   1 09:07 ibdata1
-rw-r-----  1   122 vboxusers 50331648 4月   1 09:07 ib_logfile0
-rw-r-----  1   122 vboxusers 50331648 9月   6  2019 ib_logfile1
drwxr-x---  2   122 vboxusers     4096 10月 22 15:27 kanboard/
drwxr-x---  2   122 vboxusers     4096 2月  25 09:41 mysql/
-rw-r--r--  1   122 vboxusers        6 2月  25 09:41 mysql_upgrade_info
drwxr-x---  2   122 vboxusers     4096 2月  25 09:40 performance_schema/
-rw-------  1   122 vboxusers     1676 11月 19 06:09 private_key.pem
-rw-r--r--  1   122 vboxusers      452 11月 19 06:09 public_key.pem
-rw-r--r--  1   122 vboxusers     1112 11月 19 06:09 server-cert.pem
-rw-------  1   122 vboxusers     1680 11月 19 06:09 server-key.pem
drwxr-x---  2   122 vboxusers    12288 11月 19 06:09 sys/
drwxr-x---  2   122 vboxusers    12288 10月 22 10:18 zentao/


需要恢复的数据库 FactoryTest, 所以, 不管如何先将它压缩保存下来, 丢到服务器去试试先.


3.粗暴的尝试


停止mysql /etc/init.d/mysql stop

直接把上面找到的文件丢到服务器对应的mysql目录下, 并修改相应的文件权限

启动mysql /etc/init.d/mysql start

尝试访问读取数据失败…果然没那么简单.

停止数据库, 删除前面的暴力尝试拷贝进去的文件夹


4.Google 后, 见参考.1


4.1恢复表格


需要用到工具mysqlfrm

找不到, 就装一个sudo apt install mysql-utilities

命令执行的效果 mysqlfrm --diagnostic FactoryTest/Wifi.frm

# WARNING: Cannot generate character set or collation names without the --server option.
# CAUTION: The diagnostic mode is a best-effort parse of the .frm file. As such, it may not identify all of the components of the table correctly. This is especially true for damaged files. It will also not read the default values for the columns and the resulting statement may not be syntactically correct.
# Reading .frm file for FactoryTest/Wifi.frm:
# The .frm file is a TABLE.
# CREATE TABLE Statement:
CREATE TABLE `FactoryTest`.`Wifi` (
  `id` int(11) NOT NULL AUTO_INCREMENT, 
  `ssid` varchar(32) NOT NULL, 
  `pwd` varchar(32) NOT NULL, 
PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB;
#...done.


表格的query语句出来了, 接下来就简单了, 拷贝粘贴, 执行完, 表格都有了.


4.2恢复数据


进mysql执行下面的命令(所有的表格):

ALTER TABLE example_table DISCARD TABLESPACE;


执行完后, 数据库目录下的 .idb 文件都不见了

执行上面的暴力拷贝, 只拷贝 .idb 文件: sudo cp -rn . /var/lib/mysql/FactoryTest/

记得修改文件权限: sudo chown mysql:mysql -R /var/lib/mysql/FactoryTest

再进mysql为每个表格执行语句

ALTER TABLE example_table IMPORT TABLESPACE;


完成


5.参考


1. Restore table structure from frm and ibd files

2. Reset a MySQL root password


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
22天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:优化进销存管理,掌握MySQL索引,提升系统效率(11)
轻松入门MySQL:优化进销存管理,掌握MySQL索引,提升系统效率(11)
|
23天前
|
Ubuntu Windows
【Ubuntu/Arm】Ubuntu 系统如何链接有线网络(非虚拟机)?
【Ubuntu/Arm】Ubuntu 系统如何链接有线网络(非虚拟机)?
|
24天前
|
存储 Java 关系型数据库
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
25 1
|
24天前
|
存储 Java 关系型数据库
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
17 0
|
28天前
|
Ubuntu NoSQL 关系型数据库
Ubuntu系统下安装常用软件
Ubuntu系统下安装常用软件
58 0
Ubuntu系统下安装常用软件
|
23天前
|
Ubuntu Linux 网络安全
【ubuntu】MobaXtem远程登录ubuntu系统(或虚拟机)
【ubuntu】MobaXtem远程登录ubuntu系统(或虚拟机)
|
30天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 中apt 安装MySQL数据库
Ubuntu 中apt 安装MySQL数据库
69 0
|
1天前
|
Ubuntu Linux
Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)
请注意,以上步骤是在临时基础上进行配置的。如果要永久保存静态IP地址,通常还需要修改 `/etc/network/interfaces`文件,以便在系统重启后保持配置。同时,确保备份相关配置文件以防止出现问题。
6 1
|
7天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例