php - Laravel Homestead 连接远程数据库 SSH

标签 php mysql laravel

我不知道如何连接到远程数据库。

我已经尝试过运行

ssh -fNg -L 3307:127.0.0.1:3306 forge@128.xxx.xxx.xxx

和我的.env

 DB_CONNECTION=mysql
 DB_HOST=128.xxx.xxx.xxx
 DB_PORT=3307
 DB_DATABASE=projectdb
 DB_USERNAME=forge
 DB_PASSWORD=password;

我可以使用 HeidiSql 连接远程数据库。但是当我尝试使用 laravel 项目连接时它总是返回我

 SQLSTATE[HY000] [2002] Connection timed out

还有其他解决方案吗?

最佳答案

在这种情况下,您的 .env 文件应该设置 DB_HOST=127.0.0.1,因为您正在将(本地)流量从端口 3307 上的 Homestead 服务器传输到端口上的远程服务器3306,特别是在 127.0.0.1 上。

另一种更明确的写法是:

ssh -fNg -L 127.0.0.1:3307:127.0.0.1:3306 forge@128.xxx.xxx.xxx

(但是,您可以保留当前的命令ssh -fNg -L 3307:127.0.0.1:3306 forge@128.xxx.xxx.xxx,我只是向您展示如何可以用另一种方式写,希望能让观点更清楚)。

因此,从 Homestead,如果您将流量发送到 127.0.0.1:3307,它将通过隧道传输到远程服务器,然后连接到 127.0.0.1:3306在其中。

关于php - Laravel Homestead 连接远程数据库 SSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41338669/

相关文章:

php - Wordpress 类别 ID 与评估问题

laravel - 在 laravel 7x 的路径中找不到文件

laravel - 使 Varnish 仅在用户未登录时缓存页面(Laravel 5)

php - Laravel - 向 Mailgun 发送电子邮件时出现 404 未找到错误

PHP mysql 查询不产生结果

javascript - 如何将javascript数组发送到php?

php - 在 php 中从 mysql 求和值

php - 将 MySQL 结果转换为链接,然后使用 POST 重定向到下一页

php - 使用 PHP 检查 PDF 页数(在 Linux 中)

mysql - rails - mysql连接多个表