Laravel/homestead 无法通过客户端连接到数据库

Laravel/homestead can not connect to database via client

一段时间以来,我一直在尝试连接到我的 laravel/homstead 盒子的数据库。我可以成功 运行 php artisan migrate 一旦我 运行 vagrant up & vagrant ssh。我已经尝试了很多解决方案,例如使用 localhost 而不是 127.0.0.1 并尝试了主机文件 ip 192.168.10.10 都没有用。

主机文件:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
192.168.10.10  vueapp.local
192.168.10.10  laravelapp.local

database.php:

 'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
    ],

.env 文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

我将 TablePlus 用于 Mac 作为 mysql 客户端

使用的密码:secret

TablePlus connection settings screenshot

TablePlus error message

解决方案

成功通过 ssh 连接。我仍然不知道为什么客户端(我也试过 sequel pro)每次都超时。

这些是我最终使用的设置 ssh vag运行t 默认密码是 "vagrant"

DB Client settings

我认为您的应用程序已安装在 vagrant 容器中。但是你的数据库在你的实际主机中 mac machine which which virtulbox is installed.

当您的应用程序将主机 IP 设为 127.0.0.1 时,那是您的 vagrant machine 的本地环回地址,而不是 vagrant 所在的 mac machine 运行。

因此,您可以尝试将安装在 mac machine 中的 MySQL 客户端连接到驻留在虚拟容器中的应用程序。

您可以在 vagrant 服务器中安装 MySQL 以便您的应用程序可以通过指向主机 IP 127.0.0.1.

来使用它