如何使Laravel 7 Homestead数据库快照正常工作?

问题描述 投票:0回答:1

[我享受Homestead多年了,今天注意到了一个我从未使用过的非常吸引人的功能。

https://laravel.com/docs/7.x/homestead#database-snapshots说:

Homestead支持冻结MySQL和MariaDB数据库的状态并使用逻辑MySQL管理器在它们之间分支。例如,想象在一个具有数千兆字节数据库的站点上工作。您可以导入数据库并拍摄快照。做完一些工作之后在本地创建一些测试内容,您可以快速还原到原始状态。

...

一个常见的工作流程如下:

  1. 将数据库导入默认的master lmm分支。
  2. 保存快照使用sudo lmm branch prod-YYYY-MM-DD更改未更改的数据库。
  3. 修改数据库。
  4. 运行sudo lmm merge prod-YYYY-MM-DD撤消所有变化。
  5. 运行sudo lmm delete <branch>删除不需要的分支。

此工具听起来确实很有用,但是按照这些说明操作时遇到了麻烦。这是我尝试过的结果:

sudo lmm status
Active snapshot:

Database snapshots:
  master

2.70% used by MySQL databases.
sudo lmm branch beforeImports
df: '': No such file or directory
  Logical volume name "" is invalid.
  Run `lvcreate --help' for more information.
mount: /homestead-vg/beforeImports: special device /dev/homestead-vg/mysql-beforeImports does not exist.
mount: /homestead-vg/beforeImports: special device /dev/homestead-vg/mysql-beforeImports does not exist.
mount: /homestead-vg/prod-YYYY-MM-DD: special device /dev/homestead-vg/mysql-prod-YYYY-MM-DD does not exist.
mount: /homestead-vg/beforeImports: special device /dev/homestead-vg/mysql-beforeImports does not exist.
sudo lmm checkout master
is the currently active database.
Setting /homestead-vg/master as the active database.
rm: cannot remove '/var/lib/mysql': Is a directory
ln: failed to create symbolic link '/var/lib/mysql/master': File exists

我正在使用:Windows 10,Vagrant 2.2.7,Virtualbox 6.1.2,Homestead v10.2.0。

我在做什么错?

P.S。我查看了https://github.com/Lullabot/lmm/blob/ubuntu-18.04/functions.sh#L5(我认为这是Homestead所使用的),然后我运行了sudo echo `readlink /var/lib/mysql`,它打印了一个空白行。但是sudo ls -lah /var/lib/mysql显示了很多文件。我显然不知道自己在做什么,将不胜感激。

P.P.S。我也看到了https://github.com/laravel/homestead/issues/1112,但听不懂。

laravel homestead lvm
1个回答
0
投票

[存在一个导致LMM无法与MySQL 8配合使用的错误:https://github.com/laravel/homestead/issues/1383

© www.soinside.com 2019 - 2024. All rights reserved.