- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将 laravel/homestead box 升级到了 11.1.0 版本。然后令人惊讶的事情发生了:我的数据库消失了。如何?我不知道。但是当我尝试使用 Homestead.yaml 重新安装数据库时,即使我在 Homestead.yaml 中添加了数据库列表,它也没有用。
这是我在 Homestead.yaml 中所做的:
databases:
- db00
- db01
然后我运行“vagrant provision”,但 MySQL 中没有任何变化。 “显示数据库;”仅显示默认表。
然后我激活了这些功能:
features:
- mysql: true
- mariadb: false
然后我运行了“vagrant provision”,它成功了。我在 MySQL 中有两个数据库(db00 和 db01)。以下是问题:
基于 laravel/homestead documentation for laravel v8.x , 没有 mysql 的功能选项。这在配置期间导致了以下错误:
homestead: Invalid feature: mysql
homestead: Ignoring feature: mariadb because it is set to false
将选项“- mysql”添加到 Homestead.yaml 后,我收到了 MariaDB 的以下错误
homestead: Running: script: Creating MySQL / MariaDB Database: db00
homestead: We didn't find a PID for mariadb, skipping $DB creation
homestead: Running: script: Creating MySQL / MariaDB Database: db01
homestead: We didn't find a PID for mariadb, skipping $DB creation
现在我的问题是:发生了什么事?如果没有特性选项“-mysql”,则不会创建数据库;不管我是否在数据库下定义列表。添加后,一切正常,生成了数据库,但是,我收到错误消息,指出该功能无效。它也不包含在文档中。我哪里错了?或者是否有人有解释或更好的解决方案?
最佳答案
你两个问题的答案是:因为文档有点误导
对于您的第一个问题,mysql 在技术上不是可选功能,因为它是默认安装的。但是,从 v11.3.0
开始,为了提供自定义数据库,它必须列在 Homestead.yaml
的功能部分下:
features:
- mysql: true
由于仅在 mysql
被特别启用的情况下运行配置脚本:
https://github.com/laravel/homestead/blob/v11.3.0/scripts/homestead.rb
对于你的第二个问题,显示错误消息是由于 v11.0.0
中 create-mysql.sh
脚本的实现方式:
https://github.com/laravel/homestead/blob/v11.0.0/scripts/create-mysql.sh
if [ -z "$mariadb" ]
then
# Skip Creating MariaDB database
echo "We didn't find a PID for mariadb, skipping \$DB creation"
else
mysql -e "CREATE DATABASE IF NOT EXISTS \`$DB\` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci";
fi
使用 if [ -z "$mariadb"]
条件的配置将始终为真,因为永远不会找到 mariadbd
的进程 ID,因为它未启用。因此 We didn't find a PID for mariadb, skipping $DB creation
消息将始终显示,即使数据库已成功为 mysql 创建。从技术上讲,根据脚本的编码方式,这是正确的,但也有点令人困惑。
另外,如果您按照以下说明进行操作,那么为什么您的数据库在升级时会消失:
https://laravel.com/docs/8.x/homestead#updating-homestead
vagrant destroy
命令将完全移除家园框并重建它。因此,除非配置为备份数据,否则任何数据或其他自定义配置都将丢失:
https://laravel.com/docs/8.x/homestead#database-backups
关于laravel - Vagrant/homestead 不会创建数据库,除非,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67319605/
我的问题是为什么会有 homestead.yaml文件在 .homestead folder在 Homestead/src/stubs folder ? 在我的实习机 (Mac) 上,我一直在更改 H
我正在 Macbook air 上运行 Laravel Homestead。 在 Macbook Air 上,运行 ifconfig,它显示本地 IP 地址为“inet 192.168.1.20” 我
来自官方文档,“Laravel Homestead 是一个官方的、预打包的 Vagrant box,它为你提供了一个美妙的开发环境,而不需要你在本地机器上安装 PHP、HHVM、Web 服务器和任何其
根据https://laravel.com/docs/5.4/homestead我可以通过 vagrant box add laravel/homestead 安装 Laravel Homestead
我使用 git clone https://github.com/laravel/homestead.git Homestead 从 git bash 获取了 homestead 文件夹到 Docum
我正在尝试在 Windows 7 计算机上安装和设置我的 VM/Homestead。我一直按照 http://laravel.com/docs/5.1/homestead#installation-a
我是 Homestead 的新手,但不是 Laravel。我完成了设置新安装的过程,并且能够看到主页欢迎消息。 然后我尝试通过运行为用户登录启用身份验证: php artisan make:auth
我正在尝试获取在 Windows 上运行的 Homestead Improved Vagrant VM 实例。请参阅Homestead Improved on Github 。我正在遵循这个简单的介绍
我正在 Laravel 的一个网站上工作,我在 Homestead 0.2.0 上运行,我想尝试用我的手机和平板电脑连接到它,以便我可以在这些设备上测试网站。 所以我在谷歌上搜索,试图看看如何做到这一
我有一个站点设置正常,但无法远程访问第二个站点: 我的 YAML: --- ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox
我已按照 https://laravel.com/docs/8.x/homestead#updating-homestead 中的步骤进行操作,下载 laravel/homestead (v10.1.
我正在尝试在我的宅基地上设置 ngrok,但它没有打开我的项目。 我跑了ngrok http 80并将转发部分输出中的地址复制到我的 Homestead.yaml 文件以将其映射到我的项目,然后运行
我正在尝试使用我现有的宅基地进行一些 cakePHP 开发我用于 Laravel 的安装。 我可以让应用程序运行,但它说“您的服务器上未正确配置 URL 重写。” 我尝试使用说明来配置 nginx,但
我是 Laravel 的新手,在运行 Homestead 之前,我有一个网站,但添加了另一个网站却不起作用。我销毁了 homestead 并再次开始,并在 homestead.yaml 文件的“站点”
按照说明 here 后,我正在尝试让 Homestead 正常工作。 我在 Windows 8 上安装了 Virtualbox 5.0.6 和 Vagrant 1.7.4。机器启动正常,唯一的问题是虚
我在我的开发机器 (Mac) 上运行 Laravel 4 with homestead,到目前为止很享受它,但在添加新站点时遇到了麻烦。问题是我在 ~/.homestead/Homestead.yam
我有 Laravel Homestead 5.4 和 mysql 5.7.19 的新实例。当我使用 Mysql Workbench 连接到它时,它运行正常,但是当我运行复杂的查询时,它需要很多时间。当
我刚刚创建了一个新的 laravel 项目,我正在运行一个 Homestead vagrant box vagrant init laravel/homestead 及之后 Vagrant Up 当我
我已经在我的机器上安装了 homestead 并从远程存储库克隆了一个项目,现在我正在尝试为我的项目创建一个数据库。这是我的 .env 文件的样子: APP_ENV=local APP_DEBUG=t
把我的笔记本电脑带出家几天,在那段时间里甚至都没有打开它。回来,准备继续摆弄我的项目,但页面突然停止工作。我开始在浏览器中获取 ERR_ADDRESS_UNREACHABLE。 我已经卸载了宅基地盒子
我是一名优秀的程序员,十分优秀!