【问题标题】:Strange behaviour Laravel Homestead Database Connection奇怪的行为 Laravel Homestead 数据库连接
【发布时间】:2017-05-10 07:42:05
【问题描述】:

我在使用 Laravel、Homestead 和 MySQL 时遇到了一个特殊错误。这是我的 .env 文件中与数据库相关的部分:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=33060
DB_DATABASE=mydatabasename
DB_USERNAME=homestead
DB_PASSWORD=secret

如果我将端口设置为 3306,我可以从我的应用程序访问表,但我无法从终端执行命令,例如 php artisan migrate。如果我将端口设置为 33060,我可以从终端执行命令,但我无法从我的应用程序访问表。

【问题讨论】:

    标签: php mysql laravel homestead


    【解决方案1】:

    您的应用程序在Homestead.yaml 提供的 IP 上运行,因此当 localhost 相对于您的应用程序端口 3306 时有效。当运行 artisan 而不是 SSH 到您的 vagrant vm 时,您正在运行相对于您机器的 localhost 的命令,而不是 vm,因此您正在尝试针对没有数据库的机器运行迁移。

    端口 33060 适用于您的本地计算机的原因是因为 Homestead 默认将此端口转发到您的 vagrant 虚拟机端口 3306。但是由于您的 .env 现在指定端口 33060,vagrant 虚拟机现在无法访问端口 3306 .

    DB_HOST 设置为127.0.0.1,端口为 3306,并通过vagrant ssh 命令通过 SSH 连接到您的 vagrant vm 以运行迁移命令。

    或者,您也可以为您的各种环境创建多个 .env 文件

    【讨论】:

    • 感谢您的回答和良好的解释。一旦我 ssh 进入我的流浪者,我应该如何运行 php artisan migrate?
    • @DiegoVidal 导航到 artisan 所在的目录并正常运行命令
    猜你喜欢
    • 2017-11-21
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    相关资源
    最近更新 更多