如何从Time Machine备份恢复MySQL数据库?

我在Mac上本地开发,我的电脑昨天完全死亡。 硬盘已经不在了,显然是不可恢复的。

我在Time Machine上有一个当前的备份。

所以我的问题是:

我该如何恢复备份? 是否有可以恢复的数据库的物理位置? 那会是什么?

我从命令行不使用MySQL,但我熟悉控制台等。

据我了解,Time Machine完整备份只能用于死机的机器上,但是我需要MySQL备份才可以使用其他计算机,所以我正在寻找一种方法来获取数据库当原来的MySQL文件放在插入笔记本电脑的外部硬盘上时,在我的笔记本电脑上恢复。

谢谢!

我只需要处理这个。

find备份

在我的例子中,mysql位于/usr/local/mysql/ (其中最后一部分实际上是到当前安装版本的mysql的符号链接)。 它实际上是正确地备份文件,整个结构存在于备份。

但由于某些原因,即使您在Finder中导航到正确的本地path,如果运行“Time Machine”,也会显示以前没有备份。 幸好不是真的,除非你排除它。

因此,要恢复备份,您必须导航到备份卷上的相应path,这应该是/Volumes/<yourbackupvolume>/Backups.backupdb/<host>/<revision>/Macintosh HD/usr/local/mysql/data/ 。 在候机楼里最简单 一旦你cd到正确的path,你可以使用open . 在该path中打开查找器窗口并使用拖放操作。 不过,Finder可能会要求您首先获取文件夹的所有权,因此您必须事先修复权限。

寻找稳定的备份

如果你的mysql一直在运行,你可能还是有问题的。 据我所知InnoDB是相当有弹性的,但有可能是文件结构损坏。 MySQL附带的mysqlcheck应该可以修复这样的表..

我不这样做,可能比find备份date/时间低的data/文件的修改date/时间(合理地说几分钟)更容易。 在这种情况下,你可以合理地确保有一个一致的备份,并且mysql应该从它平稳地启动。

权限

如果由于某种原因您的权限在恢复后无法正常工作,则当前(OS X 10.10 / Yosemite)所设置的权限

 sudo chown -R _mysql:admin /usr/local/mysql/data 

对我很好(MySQL以用户_mysql运行)。 请注意, mysqld几乎会静默失败,只会尝试在/usr/local/mysql/data/创build一个错误日志文件,该文件也可能由于权限而失败。

Time Machine不是SQL备份,它会做的是备份组成SQL数据库的实际文件。

我不知道Mac如何处理打开的文件(我假设你运行MySQL作为某种服务或守护进程)

你可能需要做的是使用时间机器的GUI来恢复数据库文件(只需浏览到你想要的版本,然后打开我相信;时间机器将确保它带回原来的+增量更改)

那么你可能需要运行一些一致性工具来确保你的数据库是一致的。 MySQL应该有一些内置的,但我不是专家。 MySQL是否有事务日志? 如果是这样的话,可以使用Time Machine将它们拉回到完全相同的时间点。