对于Laravel框架的目录结构可以点击该链接查看更具体一些的目录结构。

我们在全栈开发使用数据库时,需要经过这些过程:

启动数据库服务器:这里是 Homestead 中的 mysql 服务器。这是给web服务器连接的。

启动web服务器:这里是 Homestead 中的 Nginx web服务器。这是给客户端请求连接的。

编写后端脚本:这里是在 Homestead 中的 php 环境中。

视察数据库动态:需要数据库可视化管理工具。

启动 Homestead 虚拟机后,会自动启动 web 服务器和数据库服务器。

整个流程大概是:客户端请求数据,会连接到后端的 web 服务器,web 服务器会让 php 对请求进行逻辑处理,若需要对数据库操作,php 则会再去连接到数据库服务器,对数据库进行 php 的 CURD 指令。

- Homestead.yaml 配置文件的简单介绍

该文件是虚拟机的配置文件,每次修改了该文档,都需要重启虚拟机。

features :安装可选功能。

如果未创建虚拟机时(注意是未创建),创建虚拟机时会识别 features 里为 true 的选项进行安装(安装到虚拟机中),为 flase 的则不会安装;

如果是重启虚拟机,创建时已经安装过的选项无论为true还是false都无作用,因为创建虚拟机时已经安装了其创建时为 true 的选项了。

这里我有一点不大清楚,homestead 默认是没有安装 mysql 的,并且我也没有在 features 中启用 mysql 的安装,但是 php 还是可以连接上虚拟机的 mysql ,有大佬知道的没?不过我们还是把 mysql8 设为 true 比较好。

另外一点,为什么是 mysql8 而不是 mysql , 这是因为 features 的键名是以 \homestead\scripts\features 文件中的文件名为名。

servieces:禁用与启用哪些服务器(这里是服务器)。

我们将 mysql 服务器启用了即可。这里是 mysql 而非 mysql8。

注意点:

注意缩进。

当配置中键没有值时,重启虚拟机会显示”未定义变量 each”等启动失败的信息,因此没有值时,就不要写键了!

修改该配置文件后要重启虚拟机才能生效。

正确的写法:

- .env 配置文件和 config 配置文件的区别

修改 .env 文件后, 需要php artisan config:cache清理缓存后才能生效

在早些版本的 Homestead 中只有 config ,而并没有 .env 。我们在多个开发或项目版本迭代的时候,所使用的环境(使用的电脑)可能不同,这意味着 host 和 port 可能不同,那么我们肯定得需要统一的 host 和 port,但这玩意儿显然并不能进行统一,但我们又不能乱修改项目的 这些配置 ,改来改去的话,别人对改项目的测试就会出问题,那这改咋整呢?

因此引出了 .env 这个配置文件,这个文件驾驭于 config 之上。以 mysql 的配置为例,运行项目时,该项目会优先从 .env 中的配置进行处理,若. env 未对 mysql 进行配置,才会从 config 的 database.php 获取配置。(可以删除 .env 进行测试)

简单理解就是,每个队友都有一个属于自己的唯一的 .env ,该 .env 不会经过任何其他人的手里,它只属于自己;而 config 仅有一个且不属于任何一个队友,它会不断的经过他人之手。

这样的话,A队友写了个项目,对 config 的 database.php 部分进行了配置,B队友拿过来该项目在自己的电脑上运行,只需配置自己 .env 文件即可,C队友拿过去,也只需对他自己的 .env 文件进行配置,这样子的话,就不会对项目的根电脑(A队友)的配置乱修改了。当然,A队友也可以配置自己的 .env 。

我们再查看 项目根目录下的 .gitignore 文件,该文件标记了该项目哪些文件无需上传到github上,其中就包含了 .env 配置文件。当队友 clone 该 github 项目时,并没有将 .env 拷贝过来,只把 config 拷贝了过来。

若 .env 不小心被删了,可以拷贝一份 .env.example 。

- 数据库可视化管理工具——Workbench

虽然 Homestead 虚拟机中提供了很多开发时需要的工具,比如 mysql,但是并没有 mysql 可视化管理的工具,我们总不能一直用命令行来查看数据库吧,因此我们需要自己在 windows 主机中下载一个可视化工具使用。我这里使用的是 mysql 官方出的 Workbench 。

- 数据库可视化管理工具连接到 mysql 服务器

连接服务器时得需要开启数据库服务器,并且得知道 mysql 服务器得 host 和 port。

开启数据库服务器很简单,就是启动 homestead 虚拟机。

修改数据库配置,以 .env 为例 挨个说明:

注意:这里修改的只是【连接服务器】的配置值,并不是将服务器本身的 ip 进行修改!

connection:选择的是什么数据库,比如 mysql、mongodb 等。

HOST与PORT : 127.0.0.1:3306 ——这是代码要写的、配置文件要写的

我们知道 项目代码 是独立于虚拟机的环境中运行的,项目中的所有配置都是在虚拟机的环境中读取的,包括 相互独立的 ip。 因此项目代码上访问的是虚拟机上的 ip,即代码要写成 host=127.0.0.1 和 port=3306 。

HOST与PORT :127.0.0.1:33060 或 192.168.10.10:3306 ——数据库管理工具(位于宿主机)要连接的

宿主机是无法访问虚拟机上的 ip 的,而 Homestead 给我们宿主机分配了一个对应ip :host=127.0.0.1 和 port=33060,也可以直接连接192.168.10.10:3306

database:默认将要连接的数据库的名称。这里我们还没有创建。

username=homestead,password=secret :

访问数据库服务器时需要获取用户权限,Homestead 给我们默认 username=homestead,password=secret。

知道了以上信息,我们就可以打开数据库可视化管理工具进行管理了。

同时我们可以直接写代码对数据库进行操作了,在代码中操作数据库无需再指定数据库的ip、端口、数据库名称等信息了,因为在 .env 或 config 都已经配置了默认值了。

- 数据库的备份:

我们知道整个项目环境都在虚拟机中运行的,包括数据库存在于虚拟机中。这一步的备份是为了防止虚拟机被 vagrant destroy 时,同时把数据库也给删除掉。

要开启自动数据库备份,需添加如下的行到你的 Homestead.yaml 文件:

backup: true

具体请看:数据库备份。

本作品采用《CC 协议》,转载必须注明作者和本文链接

homestead 安装mysql8_Laravel Homestead 8.x ——3数据库与配置文件相关推荐

  1. laravel之homestead安装教程

    Homestead 最佳本地开发环境 Homestead Win Laravel 致力于让整个 PHP 开发体验变得愉快, 包括你的本地开发环境. Vagrant 提供了一种简单,优雅的方式来管理和配 ...

  2. 手把手教你Homestead安装,并填坑!!

    来源:http://www.jianshu.com/p/ae9d1261bbd8 话说作为laravel的开发者,你听说Homestead应该很久了,可是官方推荐的开发环境在国内为什么鲜有人用?我这几 ...

  3. php模块化安装教程,homestead安装php 扩展 教程

    看到本文,你应该遇到了homestead中php环境没有redis扩展的窘境,网上的教程也不通用,因为那些教程都只是针对单一机器单一版本php环境下的安装方法,而homestead安装了多个php版本 ...

  4. Laravel Homestead安装笔记

    引言: 最近开始学习laravel框架,了解到有个laravel homestead的box,开发起来非常方便快捷,于是就准备开始配置homestead虚拟开发环境了 什么是Homestead 要想学 ...

  5. homestead 安装mysql8_homestead安装php redis扩展

    看到本文,你应该遇到了homestead中php环境没有redis扩展的窘境,网上的教程也不通用,因为那些教程都只是针对单一机器单一版本php环境下的安装方法,而homestead安装了多个php版本 ...

  6. Laravel Homestead安装和使用

    1.先安装vagrant和 VirtualBox.git.composer 1.1.Virtualbox:https://www.virtualbox.org/ 1.2.Vagrant:https:/ ...

  7. homestead安装php扩展,Homestead 安装 PHP Redis 扩展

    虽然Laravel可以通过安装predis/predis:~1.1对Redis进行操作,但是还是想脱离框架,用PHP操作Reids,通过安装PHP Redis既可实现,以下是具体的安装步骤: 下载最新 ...

  8. homestead php.ini,Homestead安装php扩展的方法

    Homestead安装php7.1的MongoDB扩展的方法 Laravel官方Vagrant镜像Homestead,默认没有安装php的Mongodb扩展,以下是php7.1手动安装mongodb扩 ...

  9. php 管理 mysql 数据库 代码_安装并使用phpMyAdmin管理MySQL数据库_php

    学会使用基于web数据库的管理工具phpMyAdmin. 如果使用合适的工具,mysql数据库的管理就会为得相当简单.应用MySQL命令行方式需要对MySQL知识非常熟悉,对SQL语言也是同样的道理. ...

最新文章

  1. shell 去掉字符串中的字母
  2. python官网 中文版 新闻-新闻主页 - python兵者 - 博客园
  3. shell编程中crontab用法超级详解!
  4. Android复习01(内部存储、外部存储、SD卡存储、XML解析、Json解析、保存登录密码)
  5. PWN-COMPETITION-GeekChallenge2021
  6. k-Means——经典聚类算法实验(Matlab实现)
  7. 将联网方式更改为桥接模式
  8. 研究表明:满面笑容者,最有可能写出有影响力的论文!
  9. 宁可相信世上有鬼,也不要相信产品经理那张破嘴?
  10. C#_基础_结构Struct(八)
  11. CentOS添加swap分区
  12. 二维光子晶体带隙仿真Matlab完全程序_平面波展开法
  13. 6种展示代码的绝佳方式
  14. 银发经济崛起:什么才是“收割”老年人的正确姿势?
  15. 微信OAuth2接口40163错误怎么解决?
  16. 网易,抖音音乐人认证教程
  17. 计算机想ping一下网络,电脑的Ping值和网络带宽之间有什么关系?
  18. CyclicBarrier(集成7颗龙珠召唤神龙)
  19. 用Java写一个监视者模式
  20. python绘制图形沙漏_sandglass(沙漏)——一个让人解脱的python时间处理库

热门文章

  1. 以目标为导向,实现高质量的项目复盘
  2. mysql数据备份方案
  3. 【python自学】七个超强python学习网站,你值得拥有!
  4. 【GO】上传Excel并批量保存入库(Gin,Gorm,Excelize)
  5. 使用ArchiSteamFarm在树莓派挂卡
  6. ACL过滤数据流量案例
  7. 彻底关闭Antimalware Service Executable(windows defender)
  8. html鼠标点击显示二级菜单内容,怎样操作js实现二级菜单点击显示当前内容
  9. 深户优点VS 深户缺点
  10. CSS盒子模型与背景图片