【问题标题】:Laravel Homestead connect to remote database SSHLaravel Homestead 连接远程数据库 SSH
【发布时间】:2016-12-27 03:30:09
【问题描述】:

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

我已经尝试过运行

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

还有其他解决方案吗?

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    在这种情况下,您的 .env 文件应该设置 DB_HOST=127.0.0.1,因为您将(本地)流量从 Homestead 服务器的端口 3307 传输到端口 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

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 2017-11-21
      • 2014-07-28
      • 2018-11-06
      • 2016-10-29
      相关资源
      最近更新 更多