我在Mac上本地开发,我的电脑昨天完全死亡。 硬盘已经不在了,显然是不可恢复的。
我在Time Machine上有一个当前的备份。
所以我的问题是:
我该如何恢复备份? 是否有可以恢复的数据库的物理位置? 那会是什么?
我从命令行不使用MySQL,但我熟悉控制台等。
据我了解,Time Machine完整备份只能用于死机的机器上,但是我需要MySQL备份才可以使用其他计算机,所以我正在寻找一种方法来获取数据库当原来的MySQL文件放在插入笔记本电脑的外部硬盘上时,在我的笔记本电脑上恢复。
谢谢!
我只需要处理这个。
在我的例子中,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将它们拉回到完全相同的时间点。